Ios tableview中的UtableViewCell
我在应用程序中结合coredata使用iCloud Sync。有时,我的tableView中的数据会显示2或3次,因此如果我有2个单元格,则会显示4或6个单元格,并且每2个单元格都有相同的内容。有人知道为什么会发生这种情况以及如何解决吗 我的代码:Ios tableview中的UtableViewCell,ios,swift,core-data,synchronization,icloud,Ios,Swift,Core Data,Synchronization,Icloud,我在应用程序中结合coredata使用iCloud Sync。有时,我的tableView中的数据会显示2或3次,因此如果我有2个单元格,则会显示4或6个单元格,并且每2个单元格都有相同的内容。有人知道为什么会发生这种情况以及如何解决吗 我的代码: func persistentStoreDidChange() { //load data //tableView.reloadData() loadData() } func persistentStoreWillCha
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()
}
您的托管对象上下文看起来有点奇怪。在
.WillChange..
中,您可以获得对“获取结果”控制器的托管对象上下文moc
的引用,但您可以在不同(可选)上下文(可能是类实例变量)上使用块API。你需要澄清一下
- 如果可选上下文不是
nil
- 如果可选上下文与获取结果控制器的上下文相同(即,
)moc