Я уже некоторое время борюсь с этой проблемой, и я просто не могу воспроизвести ее достаточно точно, чтобы описать конкретный вариант использования. По существу, то, что я делаю, выдает запрос на открытие родного диалогового окна общего доступа к iOS 6.0 Facebook (с использованием iOS SDK для Windows 3.1.1):
if ([[SocialManager sharedManager] isNativeFacebookShareDialogAvailable]) {
if (!url) {
url = [NSURL URLWithString:@""];
}
if (!imageUrl) {
imageUrl = [NSURL URLWithString:@""];
}
dispatch_async(backgroundQueue, ^{
NSData *imageData = [NSData dataWithContentsOfURL:imageUrl];
UIImage *image = [UIImage imageWithData:imageData];
if (!image) {
image = [[UIImage alloc] init];
}
if ([FBNativeDialogs canPresentShareDialogWithSession:[FBSession activeSession]]) {
dispatch_async(dispatch_get_main_queue(), ^{
[FBNativeDialogs presentShareDialogModallyFrom:sender initialText:initialText images:@[image] urls:@[url] handler:^(FBNativeDialogResult result, NSError *error) {
if (error) {
failBlock([[error userInfo] description]);
} else {
if (result == FBNativeDialogResultSucceeded) {
completionBlock();
} else if (result == FBNativeDialogResultCancelled) {
failBlock(@"User cancelled");
} else if (result == FBNativeDialogResultError) {
failBlock(@"Unknown error");
}
}
}];
});
} else {
LogErr(@"Can't display native share dialog for active session");
}
});
}
Сразу после вызова presentShareDialogModallyFrom:sender
я либо получаю следующий журнал сбоев:
*** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSArrayM: 0x1d161490> was mutated while being enumerated.'
*** First throw call stack:
(0x32ede2a3 0x326b097f 0x32eddd85 0x35da094d 0x32edb62f 0x35da07f5 0x35e7e5e5 0x35e0ccd7 0x35e0cb6d 0x372c490f 0x35e0ca61 0x35e160d5 0x372b783b 0x35e160b1 0x372b711f 0x372b699b 0x372b6895 0x372c5215 0x372c53b9 0x36f5fa11 0x36f5f8a4)
libc++abi.dylib: terminate called throwing an exception
ИЛИ Я не вижу сбоя, и появляется диалоговое окно с родным общим доступом.
Стек подразумевает вызов в потоке с именем UIRemoteViewControllerCreationRequest
в этом пункте, вот 2 примера для двух разных сбоев:
Спасибо за помощь