Ich habe seit einiger Zeit mit diesem Problem kämpfen und ich kann es nicht genau genug reproduzieren, um den genauen Anwendungsfall zu beschreiben. Im Grunde, was ich tue ist iOS 6.0 Facebook share Dialog zum Öffnen einer nativen eine Anforderung ausgeben (unter Verwendung des Facebook-SDK für iOS 3.1.1):Inkonsistente Absturz beim Posten auf Facebook mit FBNativeDialogs auf iOS6.0
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");
}
});
}
Gleich nach presentShareDialogModallyFrom:sender
genannt wird, entweder bekomme ich folgenden Absturz log:
*** 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
OR ich keinen Absturz und das native Anteil Dialog erscheint, wie es sollte.
Der Stapel einen Anruf an einem Faden UIRemoteViewControllerCreationRequest
an dieser Stelle genannt schon sagt, hier sind zwei Beispiele für zwei verschiedene Abstürze:
Danke für Ihre Hilfe
UIRemoteViewControllerCreationRequest ist Teil des Namens des Threads. Sie müssen den Thread-Stack mit dem Schieberegler unter den Stapeln erweitern. Dann können wir alle Anrufe im Stapel sehen. –
Danke, bearbeitete Frage – Stavash
Woher wird Ihr Snippet aufgerufen (z. B. viewDidLoad oder eine IBAction)? –