Swift配列とNSArraysの間でキャストするのは簡単です。私はコンパイルする必要はないと思うケースが見つかりました:`var objCArray = array as NSArray`は法的にはなぜですか?
let doubleArray = [1.1, 2.22, 3.333, 4.4444, 5.55555,
6.666666, 7.7777777, 8.88888888, 9.999999999]
var objCArray = doubleArray as NSArray
二行目はダブルスの私スウィフト配列からNSArrayのが作成されますが、それはvar
に格納します。これは、コンパイラが配列の内容を変更することが合理的であることをテストします。それはobjCArrayがvar
として宣言されていても、あなたはその配列を変異しようとした場合、あなたがエラーを取得することを意味します
objCArray[0] = 123
なぜラインvar objCArray = doubleArray as NSArray
は合法ですか?
'var objCArray'は、後で別のものを割り当てることができるという意味です。 'var objCArray = someOtherDoubleArray as NSArray' –
なぜそれが違法であるべきですか? 'var objCArray'は可変ポインタを定義します。可変ポインタは、そのポインタが保持しているアドレスを変更することができます。それが指しているオブジェクトが可変であるかどうかは別の問題です –