2014-10-03 50 views
5

我正在玩Airdrop的想法。而蘋果公司運行示例代碼有一個錯誤:UIActivityViewController => LaunchServices:invalidationHandler調用

https://developer.apple.com/library/ios/samplecode/sc2273/Introduction/Intro.html

的錯誤信息是:

LaunchServices: invalidationHandler called 

的問題顯然是由UIActivityViewController引起的。如果您可以看一下,相關的代碼在#pragma mark - Actionsthis file之下。

它只在設備(包括iPhone和iPad)上運行時顯示錯誤消息。如果在模擬器(iPhone和iPad)上運行,這一切都很好。這是什麼原因?有關如何解決它的任何想法?它可能是一個錯誤?

類似的問題是由以下要求,其中沒有一個似乎可以回答這個quesition:

LaunchServices: invalidationHandler called - iOS 8 share sheet

Sharing via UIActivityViewController to Twitter/Facebook etc. causing crash

Present UIActivityViewController- LaunchServices:invalidationHandler called

回答

13

這是蘋果的一側的bug 。從developer forums

該日誌消息不表示您的任何錯誤。

1

你必須擺脫調用「isAvailableForServiceType:」的if語句。它應該看起來像這樣。祝你好運!

SLComposeViewController *tweetSheet = [SLComposeViewController 
              composeViewControllerForServiceType:SLServiceTypeTwitter]; 

    [tweetSheet setInitialText:@"Great fun to learn iOS programming at appcoda.com!"]; 
    [self presentViewController:tweetSheet animated:YES completion:nil]; 

    if ([tweetSheet respondsToSelector:@selector(popoverPresentationController)]) 
    { 
     // iOS 8+ 
     UIPopoverPresentationController *presentationController = [tweetSheet popoverPresentationController]; 

     presentationController.sourceView = sender; // if button or change to self.view. 
    } 
相關問題