Saya menggunakan Xcode 6 Beta 4. Saya memiliki situasi aneh ini di mana saya tidak tahu bagaimana cara menguji untuk opsional.
Jika saya memiliki xyz opsional, adalah cara yang benar untuk menguji:
if (xyz) // Do something
atau
if (xyz != nil) // Do something
Dokumen mengatakan untuk melakukannya dengan cara pertama, tetapi saya telah menemukan bahwa kadang-kadang, cara kedua diperlukan, dan tidak menghasilkan kesalahan kompiler, tetapi di lain waktu, cara kedua menghasilkan kesalahan kompilator.
Contoh spesifik saya adalah menggunakan parser GData XML yang dijembatani ke swift:
let xml = GDataXMLDocument(
XMLString: responseBody,
options: 0,
error: &xmlError);
if (xmlError != nil)
Di sini, jika saya baru saja melakukannya:
if xmlError
itu akan selalu kembali benar. Namun, jika saya lakukan:
if (xmlError != nil)
lalu bekerja (seperti cara kerjanya di Objective-C).
Apakah ada sesuatu dengan XML GData dan cara memperlakukan opsional yang saya lewatkan?