在最近更新
swift编译器更新之前,此代码工作正常.我已经纠正了所有明显的错误,但由于某些原因,当我运行应用程序时,它在for循环中崩溃时尝试将[AnyObject]强制转换为我的自定义Memory类.
原文链接:https://www.f2er.com/swift/319038.htmlHas 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)") } } }