UIActivityViewController在设备上呈现时会崩溃

我在添加ios默认分享表/ UIActivityViewController在我的项目上遇到麻烦。 它在模拟器上工作正常,但它使用USB电缆或testing飞行在设备(iPhone)上运行时崩溃。 我得到的错误消息是:

*由于未捕获exception'NSInvalidArgumentException',原因:'* – [__ NSCFString rangeOfString:options:range:locale:]:nil argument'***第一次抛出调用堆栈:(0x182ddedb0 0x182443f80 0x182ddecf8 0x1836d2ac8 0x1928f90cc 0x1928f8394 0x187f3cc40 0x187f3c844 0x1888f5050 0x182cd6584 0x182ccd2ac 0x1888f4c9c 0x1888f5560 0x187f3cc40 0x187f3c844 0x1883b4bd8 0x18813cc78 0x187f3cc40 0x187f3c844 0x1882c4228 0x1882bd3b8 0x1882bee54 0x1882c1890 0x1880373cc 0x1001ae7b8 0x187f74be8 0x187f74b64 0x187f5c870 0x187f74454 0x187f2cc0c 0x187f6d610 0x187f6cc0c 0x187f3d04c 0x187f3b628 0x182d9509c 0x182d94b30 0x182d92830 0x182cbcc50 0x1845a4088 0x187fa6088 0x100137c88 0x18285a8b8)的libc ++ abi.dylib:与typesNSException的未捕获的exception终止

这是我使用的代码

-(void)share { NSString *item = @"test"; NSArray *items = @[item]; UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil]; [self presentViewController:activityVC animated:YES completion:nil]; } 

它与“presentViewController”在线上崩溃。 我已经确定activityVC不是零,它不会崩溃,如果我尝试呈现常规视图控制器。 这是堆栈跟踪崩溃之前。

我尝试了一个空的项目完全相同的代码,它在模拟器和设备上都是这样的,这就是为什么我怀疑这个问题可能与项目/构build设置

原来我需要排除AirDrop才能在设备上工作。

 activityVC.excludedActivityTypes = @[UIActivityTypeAirDrop]; 

我不知道为什么会出现这种情况,因为我可以在其他项目中使用AirDrop(在具有相同iOS版本的相同设备上进行testing)。 可能有一些项目设置可能允许/禁止AirDrop。 这个答案适用于我,因为我不需要AirDrop为我目前的项目,但我将不胜感激,如果有人可以解释为什么UIActivityTypeAirDrop崩溃只在我的项目

我遇到了同样的问题,并通过从我的UIViewController类别中删除以下代码来解决它。

 - (void)setTitle:(NSString *)title { // ... }