Я работаю над старым iOS-приложением, первоначально написанным для iOS 6, и у него были некоторые таблицы UIAction, которые нужно было изменить, поэтому я работал над их переносом на UIAlertControllers , используя UIAlertActions. Это отлично работает на симуляторе iPad2, однако при тестировании на iPad Air (единственный iPad, к которому у меня есть доступ) мой UIAlertAction, а UIAlertController становится нулевым сразу после его создания (просматривается в отладчике, он получает указатель на создание , однако, как только он выполняет следующую строку, он становится нулевым). Вот пример кода:Почему мои UIAlertActions становятся nil на iPad Air
//When hovering over the next line, alert has a pointer
UIAlertController* alert = [UIAlertController
alertControllerWithTitle:@"info"
message:@"testmessage"
preferredStyle:UIAlertControllerStyleActionSheet];
//alert pointer is now nil
//test pointer shows up
UIAlertAction* test= [UIAlertAction
actionWithTitle:@"I'm a Button"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action){
[alert dismissViewControllerAnimated: YES completion:nil];
}
];
//test pointer is nil, test2 pointer exists
UIAlertAction* test2 = [UIAlertAction
actionWithTitle:@"I'm a Button"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action){
[alert dismissViewControllerAnimated: YES completion:nil];
}
];
//test2 pointer is nil
[alert addAction:test];
[self presentViewController:alert animated:YES completion:nil]; //app crashes, because I'm trying to present a nil modal.
Любые мысли или помощь будут очень восприимчивы!
У меня была аналогичная проблема, и я решил ее, установив объект как '@property (strong, nonatomic)' вместо этого как локальную переменную. – rob180
Какая ОС работает на вашем iPad? –
@ rob180 Сделал это, но у меня все еще есть одна и та же проблема, по какой-то причине указатели на эти объекты пользовательского интерфейса становятся нулями непосредственно после их создания. – Jet