web-dev-qa-db-ja.com

Swiftでジェネリック可変配列を初期化するにはどうすればよいですか?

私はこれを試しました:

var ss: [S] = NSMutableArray<S>(capacity: 0)

コンパイラによると:非ジェネリック型 'NSMutableArrayを特殊化できません'

どうして?

11
János

NSArrayNSMutableArrayはObjective Cタイプであり、ジェネリックスをサポートしていません。 Swiftのネイティブ配列タイプとしてインスタンス化できます。

var settings = [Setting]()

これは次のように書くこともできます

var settings = Array<Setting>()

型推論のおかげで、型を指定する必要はありませんが、これが好きな場合は完全なバージョンです。

var settings: [Setting] = [Setting]()
var settings: Array<Setting> = Array<Setting>()

ご了承ください [Setting]およびArray<Setting>は交換可能です。つまり、同じオブジェクトタイプを定義するため、好きなものを使用できます。

19
Antonio