表格视图中的 UITableViewCell 加倍
Posted
技术标签:
【中文标题】表格视图中的 UITableViewCell 加倍【英文标题】:Doubled UITableViewCell in tableview 【发布时间】: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()
【问题讨论】:
【参考方案1】:您的托管对象上下文看起来有点奇怪。在..WillChange..
中,您获得对获取结果控制器的托管对象上下文moc
的引用,但是您在不同的(可选)上下文中使用块API,可能是类实例变量。你需要澄清
nil
如果可选上下文与获取的结果控制器的上下文相同(即moc
)
【讨论】:
非常感谢您的回答!我想过,但真的不知道我该如何解决。您能否举个例子,我如何检查可选上下文是否与获取的结果控制器的上下文相同?以上是关于表格视图中的 UITableViewCell 加倍的主要内容,如果未能解决你的问题,请参考以下文章
如何在ios中的自定义UITableViewCell中添加轮播视图
滑动 UITableViewCell 操作会影响表格视图中的每 4 个单元格,而不仅仅是目标单元格