gpt4 book ai didi

swift - 将元组数组作为 AnyObject 返回?

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

是否可以将 元组 数组作为 AnyObject? 返回,或者我是否必须将 tuple 变量封装在 中class 然后返回那个class

当前结构

public typealias Changes = (id:Int!, cors:Bool!)

struct ClientReturn{
var error: NSError?
var json: JSON?
var mutableReturn: AnyObject?
var pageResults: PageResults?
}

class func Changes(api_key: String!, startDate: String?, endDate:String?,
completion: (ClientReturn) -> ()) -> (){
//content
}

Client.Changes(api_key, startDate: nil, endDate: nil){
apiReturn in
var aReturn = apiReturn;
var changesArray = [Changes]()
for(var i = 0; i < apiReturn.json!["results"].count; i++ ){
let json = apiReturn.json!["results"]
changesArray.append((id: json[i]["id"].int, cors: json[i]["cors"].bool))
}
//aReturn.mutableReturn = changesArray as! Changes
aReturn.mutableReturn = changesArray //ERROR (Cannot assign value of type '[Changes]' to type 'AnyObject?')
completionHandler(aReturn)
}

最佳答案

唯一可以转换为 AnyObject 的是类(或桥接到某个类的 Swift 结构)。

元组不是类。因此,它不能转换为 AnyObject。

同样的事情也适用于数组,尽管是通过更迂回的路线。 Array 不是类,但它桥接到 NSArray。但是 NSArray 只能包含类,即 AnyObject 元素。因此,只有一个 AnyObject 可转换数组可以转换为 AnyObject。元组不是类...您可以从这里获取。


另一种看待它的方式是:AnyObject 就是与 Objective-C 的交换。但是元组是 Swift 独有的特性:Objective-C 对它们一无所知。因此,元组数组不能转换为 AnyObject,因为它不能传递给 Objective-C。

关于swift - 将元组数组作为 AnyObject 返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35463251/

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