[Swift][Error] Value of type ‘[*]’ has no member ‘*’

・エラーメッセージ
Value of type ‘[]’ has no member ‘

・エラー例

var x:[Int] = [1,2,3]
if x.containsObject(2) {
 print(“x contains 2”)
}
// => Value of type ‘[Int]’ has no member ‘containsObject’

・原因
存在しないメソッドや変数を利用しようとした場合に発生する。

・対策
NSArrayをArrayに書き換えた場合など、つい同じ名前のメソッドが存在すると思いがちだがメソッド名変わっていたりするので、マニュアルを確認して適切に変更する。

var x:[Int] = [1,2,3]
if x.contains(2) {
 print(“x contains 2”)
}

[Swift][Error] Cannot assign value of type ‘[AnyObject]’ to type *

・エラーメッセージ
Cannot assign value of type ‘[AnyObject]’ to type *

・エラー例

var x:[Int]
var y:[AnyObject] = [1,2,3]
x = y
// => Cannot assign value of type ‘[AnyObject]’ to type ‘[Int]’

・原因
上記の場合、AnyObject型のコレクション(配列や辞書)をInt型のコレクションに格納しようとしたため

・対策
代入前に as! を使ってダウンキャストを行う

var x:[Int]
var y:[AnyObject] = [1,2,3]
x = y as! [Int]

[Swift][Error] Can’t convert value of type * to expected argument type *

・エラーメッセージ
Can’t convert value of type * to expected argument type *

・エラー例

var y:Double
var x:Int = 10
y = 10 + x
// => Can’t convert value of type ‘Int’ to expected argument type ‘Double’

・原因
上記の場合、Double型の変数にInt型の数値を格納しようとしたため

・対策
代入前に型の変換を行う

var y:Double
var x:Int = 10
y = Double(10 + x)