Я новичок, пытаюсь разобраться, используя XCode, чтобы собрать очень простой интерфейс для очень простого приложения Mac.
Я разобрал свое приложение как можно больше, чтобы проиллюстрировать препятствие, с которым столкнулся.
Мой текущий интерфейс состоит из одной кнопки.
В моем файле AppController.h у меня есть следующее:
@interface AppController : NSObject
{
NSMutableArray *ages;
int price;
NSString *culler;
}
-(IBAction) handleButtonClick: (NSButton*)sender;
@end
и в моем файле AppController.m я использую свой метод awakeFromNib для установки начальных значений:
-(void)awakeFromNib
{
ages = [NSMutableArray arrayWithObjects: nil];
[ages addObject: [NSNumber numberWithInt: 10]];
[ages addObject: [NSNumber numberWithInt: 21]];
price = 45;
culler = [NSString stringWithString: @"bright green"];
NSLog(@"waking up from nib, ages contains %i objects",[ages count]);
NSLog(@"they are ...");
for(int i = 0; i<[ages count]; i++)
{
NSLog(@"%i", [[ages objectAtIndex: i] integerValue]);
}
NSLog(@"waking up from nib, the current price is %i", price);
NSLog(@"waking up from nib, the color is %@", culler);
}
Кажется, все работает нормально, и я получаю ожидаемые сообщения журнала.
Но в моем методе обработки нажатия на одну кнопку у меня есть следующее:
-(void) handleButtonClick: (NSButton*) sender
{
NSLog(@"you clicked the button");
NSLog(@"after clicking the button, the current price is %i", price);
NSLog(@"after clicking the button, the color is %@", culler);
NSLog(@"after clicking the button, ages contains %i objects",[ages count]);
NSLog(@"they are ...");
for(int i = 0; i<[ages count]; i++)
{
NSLog(@"%i", [[ages objectAtIndex: i] integerValue]);
}
}
Когда я нажимаю на кнопку, я получаю сообщения журнала, в которых говорится, что «culler» и «цена» содержат именно то, что я ожидаю (= именно те значения, которые я дал им в «awakeFromNib»), но затем программа выдает « Программа получила сигнал: сообщение «EXC_BAD_ACCESS», и пляжный мяч появляется, как будто я ему не нравлюсь, ссылаясь на мой массив «возрастов».
Очевидно, что здесь есть нечто фундаментальное, чего я не понимаю.
Я могу сослаться на мой int и мою NSString, но не на мой NSMutableArray?
Я сбит с толку.
Если бы кто-нибудь мог указать мне правильное направление, я был бы очень благодарен.
Спасибо, что прочитали это.