私の単純なクラス ClassWithOneArray は、次のエラーを生成します。
ビットキャストでは、両方のオペランドがポインターであるか、どちらでもない必要があります %19 = bitcast i64 %18 to %objc_object*, !dbg !470 LLVM エラー: 壊れた関数が見つかり、コンパイルが中止されました! コマンド /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift が終了コード 1 で失敗しました
ただし、私のクラス ClassWithOneInt はそうではありません。なんで?
class ClassWithOneInt {
var myInt = Int()
init(myInt: Int) {
self.myInt = Int()
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeObject(myInt, forKey: "myInt")
}
init(coder aDecoder: NSCoder) {
self.myInt = aDecoder.decodeObjectForKey("myInt") as Int
}
}
class ClassWithOneArray {
var myArray = String[]()
init(myArray: String[]) {
self.myArray = String[]()
}
func encodeWithCoder(aCoder: NSCoder) {
aCoder.encodeObject(myArray, forKey: "myArray")
}
init(coder aDecoder: NSCoder) {
self.myArray = aDecoder.decodeObjectForKey("myArray") as String[]
}
}