2016-08-16 9 views
1

の部品参加:なぜ私しかし、これは私にエラーExpected ',' joining parts of a multi-clause condition.を与える「」私はそうのようなマルチパートガード文で記述しようとしている多節の条件

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

することは誰もが知っていますこのエラーが出ていますか?私はまだSwiftにはかなり新しいですが、少なくともこれが可能であることをオンラインの例から見ることができます。

それはどんな違い

編集を行う場合、私はXcodeの8ベータ5を使用しています:ここで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

私は、新しい行に2番目の句を作成しようとすることができます(正式な文書は見つかりませんので、気をつけてください。

私は迅速3で行われた変更については、この記事をお読みください。https://github.com/apple/swift-evolution/blob/master/proposals/0099-conditionclauses.md

+1

いいえ、別の行に句を入れる必要はありません。リンクされたプロポーザルでは、 'guard x == 0、y =オプション、z == 2 else'が例として与えられます。 –

+0

@MartinRこれは反例です。その上の行は「許可しない」と答えています – Surely

+1

これは問題を解決しましたので、基本的な問題を正しく解決する答えかもしれないし、そうでないかもしれませんが、それでビルドが可能です。私は 'let'キーワードで始まっているのではないかと思います。 –

関連する問題