«EXC_BAD_ACCESS» в Xcode - PullRequest
       3

«EXC_BAD_ACCESS» в Xcode

0 голосов
/ 11 октября 2011

во время запуска симуляции iphone я показываю ошибку для «EXC_BAD_ACCESS» в Xcode

код ниже:

test.h

@interface Test : UIViewController
{
   NSNumber *nWieght;
}

@property (nonatomic,retain) NSNumber   *nWieght;

end

Test.m

@implementation Test

@synthesize nWieght;

- (void)viewDidLoad 
{
   ... 
}

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{

    **NSLog(@"integer Number is :%@", iWeight);  // error occur**

}

Если я нажму кнопку UIAlertView, Xcode произойдет ошибка «EXC_BAD_ACCESS» в этом коде

Я не знаю, почему в этом коде произошла ошибка. помоги мне.

Ответы [ 2 ]

1 голос
/ 11 октября 2011

Вы действительно пропустили здесь самое необходимое (фактическое назначение), и вы используете iWeight вместо nWeight (опечатка, я уверен) в вашем примере.Просто убедитесь, что когда вы присваиваете NSNumber, вы фактически присваиваете ему NSNumber объект, а не литерал (например, nWeight = 5).а также убедитесь, что вы используете собственность.self.nWeight = [NSNumber numberWithInt:5];

0 голосов
/ 11 октября 2011

Я предполагаю, что вы имеете в виду nWieght в этой строке NSLog - если не обновлять с большим количеством кода.

Что случилось с nWieght за всю его жизнь? Имеет ли оно значение - было ли это значение выпущено и освобождено?

Самый простой способ узнать это - включить Зомби с помощью инструмента Зомби. Это установит, что каждый объект не будет освобожден, когда он полностью освобожден, и вместо этого превратит его в объект зомби. Если вы попытаетесь отправить сообщение зомби, оно будет громко жаловаться в Консоли, и вы получите намного лучшее представление о том, что вы сделали неправильно.

Есть много других способов вызвать EXC_BAD_ACCESS, которые я задокументировал здесь:

http://loufranco.com/blog/files/Understanding-EXC_BAD_ACCESS.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...