Я показываю 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. У кого-то такие же проблемы? Есть ли какие-нибудь сведения?
EXC_BAD_ACCESS обычно означает, что вы пытаетесь получить доступ к объекту, который уже освобожден, попробуйте выяснить, какой из них (в отладчике вы можете увидеть, какой метод вызывается на нем). В этом случае я бы предположил, что это объект 'sender', который исчезает после того, как вы открыли ActivityView. – fishinear
Вы можете включить объект зомби, чтобы помочь вам найти, какой объект используется, но освобожден: редактировать схему/диагностику/включить зомби. –