2014-01-06 1 views
-1

I attached the logs Когда я нажал кнопку ok, приложение момента времени вылетает из-за 0 objc_msgsend?0 objc_msgsend .. когда я нажимаю кнопку «ОК» в режиме предупреждения. ClickedButtonAtIndex

-(void)onBusinessSuccess:(id)dataObj 
{ 
    UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"Order" message:@"Order Successfully Discontinued." delegate:self cancelButtonTitle:@"Ok" otherButtonTitles: nil]; 
    alertView.tag = 1; 
    [alertView show]; 
} 

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex 
{ 
    if (buttonIndex == 0) 
    { 
     NSLog(@"I am cliked"); 
    } 
} 
+0

Вы назначили делегатов? – Ilario

+0

Да Делегаты настроены в файл .h, как @interface OrderRegionDiscontinueViewController: UITableViewController

+0

Привет @llario Мне понравился ваш код, но он не получил успеха, но он сбой и тот же 0 msgsend :( –

ответ

0

Из комментариев (добавленных в ответ на другие выгоды):

При аварии на «objc_msgSend()» вы, скорее всего, послав messageto уже освобожденной-объект. Или у вас есть указатель, который является правильным, но что-то изменило содержимое объектов. Другой причиной может быть использование обвисшего указателя, который однажды указал на память, занятую вашим объектом. Иногда objc_msgSend выдается из строя, потому что ошибка памяти изменила собственные структуры данных времени выполнения, что в свою очередь вызовет проблемы в самом объекте приемника.

В этой ситуации вам необходимо проверить, нет или нет, делегат UIAlertview был выпущен после представления, поэтому, когда предупреждение уволено, оно не отправляет сообщение своему делегату, что может быть ноль. Другой вариант заключается в том, что UIViewController, представляющий представление предупреждения, будет выпущен после его представления. Проверьте, не освобожден ли делегат предупреждения после его представления.

+0

Привет, Seya thanx :) –

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