Tipografia em Swift
Estou escrevendo uma biblioteca que pode analisar Ids digitados em JSON. No entanto, estou achando as regras da seleção de papéis um pouco desconcertante.
Exemplo:
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 que o primeiro typecast é bem-sucedido enquanto o segundo falha? Existe algo mágico sobreNSString
que não passa para classes somente Swift?
Estou usando o XCode versão 6.1 (6A1030) (o mais recente no momento da redação).