Parse Local Datastore: кажется, что Unpin объекты не работают в Swift
Я хочу открепить список объектов, которые ранее были успешно сохранены локально, и заменить его новым. Код ниже должен сделать этот трюк, но локально закрепленные объекты просто не обновляются. Я попробовал все, включая 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
1 ответ
Интересно, если ваш открепление еще не закончилось, оно все-таки отправится в базу данных.
Ты можешь попробовать:
query
.findObjectsInBackground()
.continueWithSuccessBlock({ (task: BFTask!) -> AnyObject! in
// ...
return VEPState.unpinAllObjectsWithNameInBackground("name"))
})
.continueWithSuccessBlock({ (task: BFTask!) -> AnyObject! in
// ...
return VEPState.pinAllInBackground(objects, withName: "name"))
})
Возможно, синтаксис немного отклонен, а имена методов фона не совсем верны. Также я использую обещания / задачи, которые не являются вредной привычкой.