【发布时间】:2015-10-24 21:33:00
【问题描述】:
我在我的应用中将 iCloud 同步与 coredata 结合使用。有时,我的 tableView 中的数据会显示 2 或 3 次,因此如果我有 2 个单元格,则会显示 4 或 6 个单元格,并且每个第二个单元格都有相同的内容。有人知道为什么会发生这种情况以及如何解决这个问题吗?
我的代码:
func persistentStoreDidChange() {
//load data
//tableView.reloadData()
loadData()
}
func persistentStoreWillChange(notification:NSNotification) {
actvityIndicator.hidden = false
icloudSyncLabel.hidden = false
actvityIndicator.startAnimating()
tableView.userInteractionEnabled = false
textField.userInteractionEnabled = false
let moc = self.fetchedResultsController.managedObjectContext
//disable UI (changes in progress)
managedObjectContext?.performBlock{ () -> Void in
if moc.hasChanges {
var error: NSError? = nil
if moc.save(&error) {
abort()
}
else{
moc.reset()
}
}
}
}
func recieveICloudChanges(notification:NSNotification) {
let moc = self.fetchedResultsController.managedObjectContext
moc.performBlock { () -> Void in
moc.mergeChangesFromContextDidSaveNotification(notification)
self.loadData()
}
tableView.userInteractionEnabled = true
textField.userInteractionEnabled = true
actvityIndicator.hidden = true
icloudSyncLabel.hidden = true
actvityIndicator.stopAnimating()
}
【问题讨论】:
标签: ios swift core-data synchronization icloud