Estou usando o Xcode 6 Beta 4. Tenho uma situação estranha em que não consigo descobrir como testar adequadamente os opcionais.
Se eu tiver um xyz opcional, é a maneira correta de testar:
if (xyz) // Do something
ou
if (xyz != nil) // Do something
Os documentos dizem para fazê-lo da primeira maneira, mas descobri que, às vezes, a segunda maneira é necessária e não gera um erro do compilador, mas outras vezes, a segunda maneira gera um erro do compilador.
Meu exemplo específico está usando o analisador XML GData em ponte para swift:
let xml = GDataXMLDocument(
XMLString: responseBody,
options: 0,
error: &xmlError);
if (xmlError != nil)
Aqui, se eu fizesse:
if xmlError
sempre retornaria verdadeiro. No entanto, se eu fizer:
if (xmlError != nil)
então funciona (como funciona no Objective-C).
Existe algo no XML do GData e a maneira como ele trata os opcionais que estão faltando?