Objective c Swift-AnyObject[]不是AnyObject[]的子类型?
我试图调用一个objective C方法,该方法接受一个块,该块使用NSArray回调 我得到以下编译错误: AnyObject[]不是AnyObject[]的子类型Objective c Swift-AnyObject[]不是AnyObject[]的子类型?,objective-c,swift,objective-c-blocks,Objective C,Swift,Objective C Blocks,我试图调用一个objective C方法,该方法接受一个块,该块使用NSArray回调 我得到以下编译错误: AnyObject[]不是AnyObject[]的子类型 [query fetchPlaces:^(NSArray *places, NSError *error) { }]; 迅捷的 在objective-c中,任何对象都可以为零,但在Swift中,这必须明确声明。将ObjC转换为Swift时,所有Objective-C对象都成为可选对象。尝试: query.fetchPlaces
[query fetchPlaces:^(NSArray *places, NSError *error) {
}];
迅捷的
在objective-c中,任何对象都可以为零,但在Swift中,这必须明确声明。将ObjC转换为Swift时,所有Objective-C对象都成为可选对象。尝试:
query.fetchPlaces() { (places: AnyObject[]?, error: NSError?) -> Void in
}
在objective-c中,任何对象都可以为零,但在Swift中,这必须明确声明。将ObjC转换为Swift时,所有Objective-C对象都成为可选对象。尝试:
query.fetchPlaces() { (places: AnyObject[]?, error: NSError?) -> Void in
}
在Objective-C中,所有指针都可以设置为
nil
。这意味着位置
和错误
可能都是nil
。从Objective-C转换为Swift时,您必须考虑到这一点。您必须定义位置
和错误
,以说明它们可以是nil
:
query.fetchPlaces() { (places: AnyObject[]?, error: NSError?) -> Void in
}
如果您确信位置
永远不会是零
。您还可以将其声明为允许您将其视为非可选:
query.fetchPlaces() { (places: AnyObject[]!, error: NSError?) -> Void in
}
注意:您必须使用旧版本的测试版(1或2)。你应该更新到最新的测试版。数组现在声明为
[SomeType]
而不是SomeType[]
在Objective-C中,所有指针都可以设置为nil
。这意味着位置
和错误
可能都是nil
。从Objective-C转换为Swift时,您必须考虑到这一点。您必须定义位置
和错误
,以说明它们可以是nil
:
query.fetchPlaces() { (places: AnyObject[]?, error: NSError?) -> Void in
}
如果您确信位置
永远不会是零
。您还可以将其声明为允许您将其视为非可选:
query.fetchPlaces() { (places: AnyObject[]!, error: NSError?) -> Void in
}
注意:您必须使用旧版本的测试版(1或2)。你应该更新到最新的测试版。数组现在声明为
[SomeType]
而不是SomeType[]
谢谢最后一条注释。实际上,我对文档中的语法不起作用感到困惑,但我猜的语法起了作用:)谢谢你最后的提示。实际上,我对文档中的语法不起作用感到困惑,但我猜测的语法起了作用:)