我有点困惑于这个......任何帮助都非常感激.我已经花了很多时间调试这个.
我有UITableView数据源提供NSFetchedResultsController.在单独的视图控制器中,我使用新的记录向CoreData插入[NSEntityDescription insertNewObjectForEntityForName:inManagedObjectContext:],保存托管对象上下文并关闭该控制器.很标准的东西.
然后通过NSFetchedResultsController以下方式接收托管对象上下文中的更改:
- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller {
[self.tableView beginUpdates];
}
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
[self.tableView endUpdates];
}
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath {
switch (type) {
case NSFetchedResultsChangeInsert:
[self.tableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationNone];
break;
case NSFetchedResultsChangeDelete:
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
break;
case NSFetchedResultsChangeUpdate:
[self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
break;
case NSFetchedResultsChangeMove:
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
[self.tableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationNone];
break;
}
}
Run Code Online (Sandbox Code Playgroud)
这就是出现问题的地方 - 这需要太长时间(在iPhone 4上大约3-4秒).似乎花费时间计算细胞的布局.
我从单元格中删除了所有内容(包括自定义子类)并将其保留UILabel,但没有任何改变.然后我将单元格的样式更改为Basic(或除Custom之外的任何内容)并且问题消失了 - 即时添加新单元格.
我加倍检查,NSFetchedResultsControllerDelegate回调只被调用一次.如果我忽略它们并做 …
Yammer方面似乎发生了一些变化,因为我的应用程序(尚未发布到Yammer全球应用程序目录)已经停止工作,导致一个模糊的CORS错误,并没有说明问题.
所以工作流程非常简单 -
getLoginStatus()(弹出窗口并立即关闭它.刺激,但可以忍受)messages/in_group/ID.json包含在a中的请求yam.platform.request这是控制台截图:

在Yammer应用程序设置中,有一个Javascript Origin,它就是https://buzztale.com一个,请求来自.
这发生在之前,但后来消失了(真的很混乱).而现在似乎又回来了......
希望有人对此问题有任何建议.为了访问应用程序,这里是URL - https://buzztale.com/yammer.