Используя Crittercism с некоторыми бета-тестерами, я вижу ошибку, появившуюся несколько раз, что я никогда не испытывал сам, и я не могу реплицироваться.
Критерий говорит мне: NSInternalInconsistencyException, доступ к _cachedSystemAnimationFence требует основного потока
И строка, на которую он указывает, - это:
[picker dismissViewControllerAnimated:YES completion:^{
Выполняя некоторое чтение в StackOverflow, кажется, что любой код пользовательского интерфейса должен запускаться в основном потоке. Является ли ошибка, с которой я сталкиваюсь, потому что функция rejectViewControllerAnimated запущена в фоновом потоке?
Любопытно, почему эта ошибка относительно случайна (т.е. я не могу ее воспроизвести), а также как ее исправить.
- (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];
}];
}];
}];
}