我想取消一个对象列表,我已经成功地在本地存储了这些对象,并用一个新对象替换它。下面的代码应该这样做,但本地固定的对象根本不会更新。我尝试了包括PFObject.unpin在内的所有内容,除了完全重置模拟器外没有任何东西会删除旧的固定对象
func updateCountryList(server:Int, local:Int) {
let query = VEPCountry.queryAll()
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]!, error: NSError!) -> Void in
if error != nil {
// throw error
} else {
if local != 0 {
VEPState.unpinAllObjectsWithName(String("countryListVersion\(local)"))
}
VEPState.pinAll(objects, withName: String("countryListVersion\(server)"))
defaults.setObject(server, forKey: "localCountryListVersion")
}
}
}
在Swift
中获取有关解除支持的已知问题的帮助或指针答案 0 :(得分:0)
我想知道你的unpin是否真的没有完成,毕竟它会进入数据库。
你可以尝试:
query
.findObjectsInBackground()
.continueWithSuccessBlock({ (task: BFTask!) -> AnyObject! in
// ...
return VEPState.unpinAllObjectsWithNameInBackground("name"))
})
.continueWithSuccessBlock({ (task: BFTask!) -> AnyObject! in
// ...
return VEPState.pinAllInBackground(objects, withName: "name"))
})
我的语法可能有点偏,背景方法名称不太对。我也在使用承诺/任务,这不是一个坏习惯。