Sử dụng chủ nghĩa Crittercism với một số người thử nghiệm beta Tôi thấy một lỗi xuất hiện nhiều lần mà tôi chưa bao giờ trải nghiệm bản thân và tôi không thể tái tạo.NSInternalInconsistencyTruy cập truy cập _cachedSystemAnimationFence yêu cầu chủ đề chính
Crittercism nói với tôi: NSInternalInconsistencyException truy cập _cachedSystemAnimationFence đòi hỏi các chủ đề chính
Và dòng nó được trỏ đến là:
[picker dismissViewControllerAnimated:YES completion:^{
Làm một số đọc trên StackOverflow có vẻ như bất kỳ mã UI nên được chạy trên chủ đề chính. Là lỗi tôi đang gặp phải vì các dismissViewControllerAnimated đã được chạy trên một chủ đề nền?
Tò mò tại sao lỗi này tương đối ngẫu nhiên (nghĩa là tôi không thể tạo lại) và cũng làm cách nào để khắc phục lỗi này.
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
__block PHObjectPlaceholder *assetPlaceholder;
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
PHAssetChangeRequest *changeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:[info objectForKey:@"UIImagePickerControllerOriginalImage"]];
assetPlaceholder = changeRequest.placeholderForCreatedAsset;
} completionHandler:^(BOOL success, NSError *error) {
NSArray *photos = [[NSArray alloc] initWithObjects:assetPlaceholder.localIdentifier, nil];
PHFetchResult *savedPhotos = [PHAsset fetchAssetsWithLocalIdentifiers:photos options:nil];
[savedPhotos enumerateObjectsUsingBlock:^(PHAsset *asset, NSUInteger idx, BOOL *stop) {
NSMutableArray *images = self.event.eventAttachments;
if (images) {
[images addObject:asset];
} else {
images = [[NSMutableArray alloc]init];
[images addObject:asset];
}
self.event.eventAttachments = images;
[picker dismissViewControllerAnimated:YES completion:^{
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:4];
NSArray *indexPaths = [[NSArray alloc] initWithObjects:indexPath, nil];
[self.tblChildrenNotes beginUpdates];
[self.tblChildrenNotes reloadRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationNone];
[self.tblChildrenNotes endUpdates];
}];
}];
}];
}
Bạn đã bao giờ sửa lỗi này chưa? Hoặc bất kỳ giải pháp mà bạn có thể cung cấp? –
Bạn phải có mã đang cố gắng điều khiển giao diện người dùng trên một chuỗi nền. Quấn bất kỳ thao tác giao diện người dùng nào trong đoạn mã mà người dùng 'iOS' đăng ở trên – jungledev