0

Я показываю activityViewController используя следующую строку кода из моего ViewControllerUIActivityViewController сбой при отмене на iPhone iOS8

[MyClass showShareMenuWithString:@"test string" sender:self];

Это заявление этого метода внутри MyClass

+ (void)showShareMenuWithString:(NSString*)text sender:(id)sender{ 
    NSArray* array = [NSArray arrayWithObject:[NSString stringWithFormat:@"%@",text]]; 
    UIActivityViewController *activityView = [[UIActivityViewController alloc] initWithActivityItems:array applicationActivities:nil]; 

    [sender presentViewController:activityView animated:YES completion:nil]; 

} 

После этого, ActivityView появляется на экране с возможностью выбора некоторых действий, таких как отправка SMS или электронной почты и других. Выбрав одно из этих действий, SMS-сообщение диспетчера почты отображается на экране с предварительно заполненными данными. Но после отмены этих контроллеров мое приложение вылетает с ошибкой EXC_BAD_ACCESS. Это случается случайным образом, и есть небольшой шанс, что эти контроллеры исчезнут без сбоев. Приложение - только iPhone, а массив - не ноль.

Приложение не сработало на iOS7. Он был протестирован на iPhone с разными iOS 7/8. У кого-то такие же проблемы? Есть ли какие-нибудь сведения?

+0

EXC_BAD_ACCESS обычно означает, что вы пытаетесь получить доступ к объекту, который уже освобожден, попробуйте выяснить, какой из них (в отладчике вы можете увидеть, какой метод вызывается на нем). В этом случае я бы предположил, что это объект 'sender', который исчезает после того, как вы открыли ActivityView. – fishinear

+1

Вы можете включить объект зомби, чтобы помочь вам найти, какой объект используется, но освобожден: редактировать схему/диагностику/включить зомби. –

ответ

0

Благодаря @ Y.Bonafons

Я не ставил мой делегат на ноль в предыдущем контроллере после pop'ing, поэтому он пытался назвать это методы.

Включение объектов зомби мне очень помогает.

Смежные вопросы