簡體   English   中英

UIActivityViewController崩潰,NSCFConstantString _beforeActivity無法識別的選擇器發送到實例

[英]UIActivityViewController crashing, NSCFConstantString _beforeActivity unrecognized selector sent to instance

我正在嘗試使用UIActivityViewController將新的iOS 6共享功能添加到我的應用程序中。 我有一些我要分享的文字,如果他們選擇電子郵件,我也想自動設置電子郵件的主題。

NSArray *activityItems = @[resultString];
NSLog(@"items=%@", activityItems);

NSArray *acitivities = @[UIActivityTypeMail, UIActivityTypeMessage, UIActivityTypePrint, UIActivityTypePostToFacebook, UIActivityTypeCopyToPasteboard];

UIActivityViewController *activityController =
    [[UIActivityViewController alloc] initWithActivityItems:activityItems
                                      applicationActivities:activities];

if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    self.popover = [[UIPopoverController alloc] initWithContentViewController:activityController];
    // the line above is where the error happens.
    [self.popover presentPopoverFromBarButtonItem:self.emailResultsButton permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];
} else {
    [self presentViewController:activityController
                       animated:YES
                     completion:nil];
}

以下是代碼的輸出,包括錯誤消息:

[694:907] items=(
    "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas porttitor accumsan mi eu mollis. Fusce condimentum dictum lectus, eu ultrices urna vulputate eu."
)
[694:907] -[__NSCFConstantString _beforeActivity]: unrecognized selector sent to instance 0x3ad971c8
[694:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFConstantString _beforeActivity]: unrecognized selector sent to instance 0x3ad971c8'
*** First throw call stack:
(0x35add2a3 0x37a1497f 0x35ae0e07 0x35adf531 0x35a36f68 0x361dc7a3 0x361dc52d 0x36067595 0x36434d31 0x3642fe07 0x2990b 0x361330ad 0x36133135 0x361330ad 0x3613305f 0x3613303d 0x361328f3 0x36132de9 0x3605b5f9 0x36048809 0x36048123 0x37bd15a3 0x37bd11d3 0x35ab2173 0x35ab2117 0x35ab0f99 0x35a23ebd 0x35a23d49 0x37bd02eb 0x3609c301 0x1ef9d 0x1ef30)
libc++abi.dylib: terminate called throwing an exception

我在帶有iOS6的iPad 2上運行它。 有任何想法嗎?

編輯:如果我不提供活動數組似乎一切似乎工作正常。 仍在縮小問題范圍。

異常說明了一切:你傳入一個字符串數組:

NSArray *acitivities = @[UIActivityTypeMail, UIActivityTypeMessage, UIActivityTypePrint, UIActivityTypePostToFacebook, UIActivityTypeCopyToPasteboard];

文檔說該方法需要一個UIActivity對象列表:

applicationActivities

一組UIActivity對象,表示應用程序支持的自定義服務。 此參數可能為零。

請注意,這適用於自定義活動; 例如,除了現有服務之外,您還希望提供自己的DropBox集成。

編輯:至於活動類型 ,它們似乎只在UIActivity.activityTypeUIActivityItemProvider.activityTypeUIActivityViewController.excludedActivityTypes-[UIActivityItemSource activityViewController:itemForActivityType:]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM