gpt4 book ai didi

objective-c - Swift - AnyObject[] 不是 AnyObject[] 的子类型吗?

转载 作者:搜寻专家 更新时间:2023-11-01 05:54:29 31 4
gpt4 key购买 nike

我正在尝试调用一个 Objective-C 方法,该方法采用一个 block ,该 block 使用 NSArray 进行回调。

我得到以下编译错误:

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

[query fetchPlaces:^(NSArray *places, NSError *error) {

}];

swift

query.fetchPlaces() { (places: AnyObject[], error: NSError) -> Void in

}

最佳答案

在 Objective-C 中,所有指针都可以设置为 nil。这意味着 placeserror 都可以是 nil。从 Objective-C 转换为 Swift 时,您必须考虑到这一点。您必须将 placeserror 定义为 Optionals考虑到它们可以是 nil 的事实:

query.fetchPlaces() { (places: AnyObject[]?, error: NSError?) -> Void in

}

如果您确定 places 永远不会是 nil。您也可以将其声明为 Implicitly Unwrapped Optional让你把它当作不是可选的:

query.fetchPlaces() { (places: AnyObject[]!, error: NSError?) -> Void in

}

注意:您必须使用旧版本的测试版(1 或 2)。您应该更新到最新的测试版。数组现在声明为 [SomeType] 而不是 SomeType[]

关于objective-c - Swift - AnyObject[] 不是 AnyObject[] 的子类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24972910/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com