2016-07-03 2 views
4

У меня возникли проблемы с добавлением листа по умолчанию ios default/UIActivityViewController в моем проекте. Он отлично работает на симуляторе, но он падает, когда он запускается на устройстве (iPhone), используя либо USB-кабель, либо testflight. Сообщение об ошибке я получаю:Сбой при сбое UIActivityViewController при подаче на устройство

* Нагрузочное приложение из-за неперехваченное исключение 'NSInvalidArgumentException', причина: '* - [__ NSCFString rangeOfString: Параметры: Диапазон: локалите]: ноль аргумент' *** Первый стек бросить вызов: (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 0x10013 7c88 0x18285a8b8) LibC++ abi.dylib: оканчивающиеся неперехваченного исключением типа NSException

Вот код, я использую

-(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 не ноль, и он не падает, если я пытаюсь представить обычный контроллер. Вот stack trace прямо перед сбоем.

Я попробовал один и тот же код на пустой проект, и он работает как на тренажере и устройства, поэтому я подозреваю, что проблема может быть с проектом/построить установки

+0

Я пробовал ваш код. Он отлично работает на симуляторе. Я думаю, что в другом месте вы ошибочно передаете строку. Чек это хорошо другие части кода. – user3182143

+0

Больше этой трассировки стека было бы полезно при отладке этого. –

+0

Спасибо за ваши ответы, я обновил свой вопрос с полным сообщением об ошибке и трассировкой стека моего проекта прямо перед сбоем. Я также попытался изменить локальные переменные на частные свойства, если какой-либо из них был выпущен досрочно. Как и @ user3182143, я считаю, что это связано с другими частями кода. Но он только падает на устройство при представлении ActivityViewController, он работает при представлении другого VC. И я убедился, что все переменные все еще существуют, когда их вызывают. Я не могу найти какую-либо часть кода, вызываемого во время этого процесса –

ответ

4

Оказывается, мне нужно, чтобы исключить десантный в порядке для этого работать на устройстве.

activityVC.excludedActivityTypes = @[UIActivityTypeAirDrop]; 

Я не знаю, почему это так, так как я могу включить десантный просто отлично на других проектах (тестирование на одном устройстве с той же версией IOS). Вероятно, есть некоторые настройки проекта, которые могут разрешить/запретить AirDrop. Этот ответ работает для меня, поскольку мне не нужен AirDrop для моего текущего проекта, но я был бы признателен, если бы кто-нибудь мог объяснить, почему UIActivityTypeAirDrop падает только на моем проекте

1

Я столкнулся с той же проблемой и решил ее, следующий код из моей категории UIViewController.

- (void)setTitle:(NSString *)title { 
    // ... 
} 
Смежные вопросы