Я нуб, пытаюсь разобраться с использованием 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]);
}
}
Когда я нажимаю кнопку, я получаю сообщения журнала, говорящие мне, что «выбраковка» и «цены» содержат именно то, что я ожидаю (= точно те значения, которые я дал им в «awakeFromNib»), но затем программа выдает «Программа получила сигнал : «EXC_BAD_ACCESS»», и пляжный мяч выглядит так, как будто ему не нравится, что я ссылаюсь на свой массив «возраст».
Очевидно, здесь есть что-то фундаментальное, чего я не понимаю. Я могу ссылаться на свой int и свой NSString, но не могу ссылаться на свой NSMutableArray?
Я сбит с толку.
Если бы кто-нибудь мог указать мне в правильном направлении, я был бы очень благодарен.
Спасибо за чтение этого.