ENG*_*618 6 casting parse-platform swift
在最近更新swift编译器更新之前,此代码工作正常.我已经纠正了所有明显的错误,但由于某种原因,当我运行应用程序时,它会在for in loop尝试强制转换[AnyObject]到我的自定义Memory类时崩溃.
日志和错误显示如下:
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).
所以我知道我正在从Parse中检索到8个正确的记忆,而且当前的记忆是正确的......它只是不会施放它.
代码:
    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)")
            }
        }
    } 
小智 21
这个让我忙碌几个小时 - Parse-Documentation提到:
PFObject的强类型子类必须符合PFSubclassing协议,并且必须在调用[Parse setApplicationId:clientKey:]之前调用."
通过在AppDelegate中调用MyParseClass.registerSubclass(),我解决了我的问题!
| 归档时间: | 
 | 
| 查看次数: | 1196 次 | 
| 最近记录: |