2016-08-16 3 views
1

Я пытаюсь написать многосекционное заявление сторожевого как так:Ожидаемые «» присоединение части условия мульти-п

guard let killSwitchedFeatures = quickAuthCardAccount.killswitches, !self.isKillswitched(usingArray: killSwitchedFeatures) else { 
    return 
} 

Однако, это дает мне ошибку Expected ',' joining parts of a multi-clause condition. Кто-нибудь знает, почему я Получи эту ошибку? Я все еще довольно новичок в Swift, но могу видеть из примеров в Интернете, что это, по крайней мере, было возможным.

Я использую Xcode 8 бета-5, если это делает никакой разницы

Edit: Вот определение метода isKillswitched:

private func isKillswitched(usingArray killswitchArray: [String]) -> Bool 

А вот определение killswitches собственности:

public let killswitches: [String]? 
+0

Что такое подпись 'isKillswitched'? –

+0

В Swift 3 ваш синтаксис верен, если 'self.isKillSwitched ...' является 'Bool' (а не' Bool? '). Быстрые ошибки часто могут забрать красную сельдь, а не настоящую проблему, поэтому @AhmedBaracat попросил объявление функции ... – Grimxn

+0

Я только что обновил свой оригинальный пост с объявлением 'isKillswitched'. –

ответ

0

Я думаю, вы можете попытаться сделать второе предложение в новой строке (никакого официального документа не найдено, так что имейте в виду, но можете попробовать с ним :).

Я прочитал эту статью о внесенных изменениях в быстром 3: https://github.com/apple/swift-evolution/blob/master/proposals/0099-conditionclauses.md

+1

Нет, нет необходимости размещать предложения в разных строках. 'guard x == 0, пусть y = optional, z == 2 else' приведен как пример в связанном с предложением. –

+0

@MartinR Это встречный пример. Строка над ним говорит «disallowing» – Surely

+1

Ну, это решило проблему, поэтому, хотя это может быть или не быть ответом, который правильно исправляет базовую проблему, это позволило мне создать. Может быть, это потому, что я начинаю с ключевого слова 'let', тогда как вы начинаете с теста равенства? –

Смежные вопросы