在我们的项目中,我们有一个名为Attendee
的类,它继承自PFObject
。我们运行一个PFQuery
来获取PFObject列表,我们希望将它存储到全局Attendee
数组中。下面是数组的代码和我们的查询:
var attendees: [Attendee] = []
query.findObjectsInBackgroundWithBlock { (objects: [AnyObject]?, error: NSError?) -> Void in
if( error == nil ) {
attendees = objects as! [Attendee]
} else {
println( error )
}
}
但是,当我在调试器中检查与会者数组的内容时,它总是为空。使用调试器,我检查了findObjectsInBackgroundWithBlock
返回的对象数组,并且有正在获取的对象。
我还附上了下面的Attendee
课程定义。
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"
}
}
为什么类型转换和副本无法正常运行?我们正在开发Swift 1.2和Xcode 6.3
答案 0 :(得分:1)
您必须在AppDelegate中注册自定义对象:
Attendee.registerSubclass()
在解析初始化Parse.setApplicationId("xxx", clientKey: "XXX")
如果你没有,你必须使用参加者的班级名称来启动PFQuery:
let query = PFQuery(className: Attendee.parseClassName())
query.fromLocalDatastore() //if data is locally stored
query.findObjectsInBackgroundWithBlock { .. }
这些步骤对我有用。