にエラー「リテラル空のコレクションには、明示的な型を必要とする」私は私のクラスの変数を持ってSwift3
func chargeData (data: NSArray){
list = data
}
それは働いていましたよくSwift 2.3
での私のプロジェクトではなくとき、私はそれが私に次のエラーを与えるSwift3
XCode8
にそれを更新しています
Empty collection literal requires an explicit type
はので、私は私のリスト変数に型キャストを追加しました:
var list = [] as! NSArray
が、それは私には、次の警告提供します:
Forced cast of 'NSArray' to same type has no effect
私は警告がアプリケーションを壊していませんが、私はということを知っているがこのエラーを適切な方法で解決するのが好きです。
誰かが同じエラーを受け取り、正しく解決しましたか?
ありがとうございます!暗黙的な変換が廃止されているので、あなたは、コンパイラに(ArrayLiteral
[]
の)明示的な型を指示する必要がありますので、
あなたは 'var list:NSArray = []'を実行する必要があります。別のものに置き換えても大丈夫です。しかし、それは*変更可能なものではないので、 'var list:NSMutableArray = []'はおそらくもっと良いでしょう。 – Moritz
@EricAyaそれ自体が変更可能ではないという事実はどういう意味ですか?私はそれがその値を変えることができるということを知っていますが、私は本当に "変化可能なもの"とはどういう意味ですか? –
コード別に、その答えが異なります。 var/letとNSArray/NSMutableArrayです。 – Moritz