0
私はこの上に私の頭を傷つけています。エディタはそれを気に入らず、コンパイラはそれをあまり好きではありませんが、理由に同意しません。コンパイラは完了ハンドラ内のガードステートメントが好きではありません
cardRemoveTimer = Timer.scheduledTimer(withTimeInterval: 0.3, repeats: true, block: { [weak self] (_) in
guard let self = self else {
return
}
//…
}
XCodeのエディタ:28:31:条件に合致する パターンは
CardDeck.swift「ケース」キーワードが必要です '?CardDeck' 型の値を変換できません。期待される引数型 '_OptionalNilComparisonType'
私がしようとしているのは、自己の強制アンラッピングを避けることです。なぜ私はできないのですか?もしできれば、どう?
OK。私はそれに答えてマークします。しかし、私はまだコードが有効であるべきだと思います。 (なぜなら、 'self'は使用できない特別な変数名です...) – Mozahler
@Mozahlerあなたがコード内でバッククォートで囲むならば、確かに 'self'を使うことができます。' \ 'self \' '。しかし、それは本当に良いデザインの選択ではなく、あなたがそれを使うたびにバックティックを使う必要があります。 –
'self'は特別な意味を持つSwiftキーワードです。あなたはそれをバッククックで囲むことによって一般的な変数名として使うことができますが、私はそれをお勧めしません。 – vacawama