ios - 类型转换数组的最有效方法

标签 ios arrays swift casting

我正在使用一个框架,该框架从设备的缓存中异步加载数据并返回它。但是,该方法(我无法更改其定义)返回一个 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/

相关文章:

swift - 协议(protocol)定义中是否可以将一种 Swift 类型别名限制为另一种类型别名?如果没有,我还能如何实现组件注册之类的功能?

ios - 如何在 iPad OS 中从 Hockeyapp(或类似软件)下载企业签名应用程序?

c++ - 数组调试不正确的输出,复杂的算法

arrays - 更好的 Swift 数组排序方法?

php - 如何: compare array with string and create hastags before tweeting

ios - MyScript 如何将 mathwidget 添加为另一个 UIViewController 中的 subview

ios - 通过 GMT+8 时时间转换不起作用

objective-c - 无法使用stringWithContentsOfURL检索某些页面

javascript - iPhone 上 iOS Safari 中的转换会导致意外行为

ios - 如何在不更新的情况下更新/添加可解锁项到我的应用程序中?