【发布时间】:2014-12-30 18:37:22
【问题描述】:
我们开始使用 CloudKit,并且已经使用 Firebase 有一段时间了。
我们遇到的问题是当我们没有在代码中使用 CoreAnimation 时出现 CoreAnimation 警告。
CoreAnimation: warning, deleted thread with uncommitted CATransaction; set CA_DEBUG_TRANSACTIONS=1 in environment to log backtraces.
每当我们从 CloudKit 读取/添加/更新/删除任何记录时都会发生这种情况。
例如,这是我们最初将联系人加载到 NSTableView 中
-(void)loadContacts {
CKQuery *query = [[CKQuery alloc] initWithRecordType:@"Contact" predicate:[NSPredicate predicateWithFormat:@"TRUEPREDICATE"]];
self.arrayToDisplay = [NSMutableArray new];
[self.publicDatabase performQuery:query inZoneWithID:nil completionHandler:^(NSArray *results, NSError *error) {
if ( error ) {
NSLog(@"error loading array: %@", error.localizedDescription);
} else {
self.arrayToDisplay.array = results; //arrayToDisplay is an array of CKRecord objects
[self.myTableView reloadData];
}
}];
}
self.publicDatabase 是一个初始化的 CKDatabase。
请注意,所有功能都可以正常工作,读取/添加/更新/删除,但每次调用后都会显示该消息。
我们已将 CA_DEBUG 设置为记录回溯,它似乎与在获取记录之前重绘 NSTableView 有关?
【问题讨论】:
-
找到更多信息。看起来完成块在后台线程中运行,因此重新加载 tableview 的调用也在后台线程中。如何解决?类似问题stackoverflow.com/questions/26257952/cloudkit-query-time
标签: cloudkit