Tipografía en Swift

Estoy escribiendo una biblioteca que puede analizar Ids escritos desde JSON. Sin embargo, las reglas de conversión me parecen un poco desconcertantes.

Ejemplo:

class AccountId : NSString { }

let json : AnyObject? = "user-1" // Returned by NSJSONSerialization.JSONObjectWithData
let s = json as? NSString   // Succeeds, s == Some("user-1")
let a = json as? AccountId  // Fails, a == nil

¿Por qué tiene éxito la primera conversión tipográfica mientras que la segunda falla? ¿Hay algo mágico sobreNSString que no se cruza con las clases de Swift-only?

Estoy usando XCode Versión 6.1 (6A1030) (la última en el momento de la escritura).

Respuestas a la pregunta(2)

Su respuesta a la pregunta