Swift PFObject无法强制转换为自定义子类
在最近更新swift编译器之前,该代码运行良好。我已经纠正了所有明显的错误,但由于某种原因,当我现在运行应用程序时,它在尝试将Swift PFObject无法强制转换为自定义子类,swift,casting,parse-platform,Swift,Casting,Parse Platform,在最近更新swift编译器之前,该代码运行良好。我已经纠正了所有明显的错误,但由于某种原因,当我现在运行应用程序时,它在尝试将[AnyObject]强制转换到我的自定义内存类时在for in循环中崩溃 日志和错误显示如下: Has connectivity Successfully retrieved 8 memories. current memory: <Memories: 0x170120960, objectId: AO3EvPFob4, localId: (null)> {
[AnyObject]
强制转换到我的自定义内存类时在for in循环中崩溃
日志和错误显示如下:
Has connectivity
Successfully retrieved 8 memories.
current memory: <Memories: 0x170120960, objectId: AO3EvPFob4, localId: (null)> {
ACL = "<PFACL: 0x174047e30>";
Date = "3915-04-08 05:00:00 +0000";
Guests = 4;
Title = test4;
}
Could not cast value of type 'PFObject' (0x100130bc0) to 'MemoryVault.Memory' (0x10012fa00).
这让我忙了几个小时-解析文档提到:
PFObject的强类型子类必须符合PFSubclassing协议,并且必须在调用[Parse setApplicationId:clientKey:]之前进行调用。”
通过调用MyParseClass.registerSubclass()在AppDelegate中,我解决了我的问题!哇,谢谢!我刚刚添加了一个新模型,花了好几个小时试图解决这个问题。我完全忘记了AppDelegate中的函数,我必须在每个模型上调用registerSubclass
,以避免这个问题。我希望我们尽快摆脱这个棘手的解决方法!我知道吗是否需要将pfsubclass
添加到子类的类定义中?
if (NetworkValidator.hasConnectivity()){ // Has internet connectivity
println("Has connectivity")
Memory.memoryQuery().findObjectsInBackgroundWithBlock{
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
// The find succeeded.
println("Successfully retrieved \(objects!.count) memories.")
Memory.unpinAllInBackground(self.memories, block: {
(success: Bool, error: NSError?) -> Void in
// Clear current list
self.memories = [Memory]()
// Do something with the found objects
for memory in objects! {
println("current memory: \(memory)")
let currentMemory: Memory = memory as! Memory
// Save to localDataStore
currentMemory.pinInBackground()
println("\(currentMemory.memoryTitle) from Parse")
// Append to current
self.memories.append(currentMemory)
}
})
// Notify tableView to reload data
self.memoriesTableView.reloadData()
} else {
// Log details of the failure
println("Error: \(error!) \(error!.userInfo)")
}
}
}