Я использую Xcode 6 Beta 4. У меня такая странная ситуация, когда я не могу понять, как правильно тестировать дополнительные опции.
Если у меня есть необязательный xyz, это правильный способ тестирования:
if (xyz) // Do something
или
if (xyz != nil) // Do something
В документах говорится, что сделать это первым способом, но я обнаружил, что иногда требуется второй путь и не генерирует ошибку компилятора, но в других случаях второй способ генерирует ошибку компилятора.
В моем конкретном примере используется синтаксический анализатор XML GData с быстрым переходом:
let xml = GDataXMLDocument(
XMLString: responseBody,
options: 0,
error: &xmlError);
if (xmlError != nil)
Здесь, если я только что сделал:
if xmlError
он всегда будет возвращать true. Однако, если я это сделаю:
if (xmlError != nil)
тогда он работает (как работает в Objective-C).
Есть ли что-то с XML-GData и как он обрабатывает варианты, которые мне не хватает?