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"))
  })

Возможно, синтаксис немного отклонен, а имена методов фона не совсем верны. Также я использую обещания / задачи, которые не являются вредной привычкой.

Другие вопросы по тегам