Objective c Swift-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

我试图调用一个objective C方法,该方法接受一个块,该块使用NSArray回调

我得到以下编译错误:

AnyObject[]不是AnyObject[]的子类型

[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[]

谢谢最后一条注释。实际上,我对文档中的语法不起作用感到困惑,但我猜的语法起了作用:)谢谢你最后的提示。实际上,我对文档中的语法不起作用感到困惑,但我猜测的语法起了作用:)