我正在使用一个框架,该框架从设备的缓存中异步加载数据并返回它。但是,该方法(我无法更改其定义)返回一个 AnyObject
数组。我有一个名为 Attendee
的类,我确信对象属于该类。我需要将 [AnyObject]
数组转换为 [Attendee]
数组。目前,我通过集成返回的数组、对每个单独的对象进行类型转换并将其存储在别处来实现这一点。我试图只对数组进行类型转换,但我在类型转换时遇到了快速运行时错误。是否有比循环遍历更有效的方法将 [AnyObject]
转换为 [Attendee]
?
var attendees: [Attendee] = []
let query = PFQuery(className: "Attendee")
query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]!, error: NSError!) -> Void in
if( error == nil ) {
attendees = objects as! [Attendee]
} else {
println("Error fetching attendees: \(error) ")
}
}
参加者类别定义
class Attendee: PFObject, PFSubclassing {
override class func initialize() {
var onceToken : dispatch_once_t = 0;
dispatch_once(&onceToken) {
self.registerSubclass()
}
}
class func parseClassName() -> String! {
return "Attendee"
}
}
最佳答案
也许 map 会起作用?
let arrayOfAttendee : [Attendee] = arrayOfAnyObjects.map{$0 as! Attendee}
关于ios - 类型转换数组的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31166333/