Действительно, кто-то может помочь мне разобраться, почему отправка объектов, являющихся членами массива, кажется самым сложным в мире в Obj-C.Отправка сообщения объекту, входящему в массив
Вот установка: у меня есть класс автомобиля. Автомобиль имеет два объекта-члена, двигатель и шину (из них четыре). Затем у меня есть NSArray (также член автомобиля), инициализированный для хранения объектов шины. Я сделал это, потому что я не могу понять, как писать или синтезировать методы геттер для только декларирует как Тир * шины [4] (так что я должен использовать NSArray и использовать objectAtIndex
Вот класс автомобиля:.
#import "Tire.h"
#import "Engine.h"
@interface Car : NSObject
{
Engine *engine;
Tire *tire1;
Tire *tire2;
Tire *tire3;
Tire *tire4;
NSArray *tirearray;
}
@property (nonatomic, copy) id engine;
@property (nonatomic, copy) id tire;
@property (nonatomic, copy) id tirearray;
@implementation Car
@synthesize engine;
@synthesize tire;
@synthesize tirearray;
- (void) print {
NSLog(@"%@", engine);
}
- (id) init {
if (self = [super init]) {
engine = [Engine new];
tire1 = [[tire alloc] init];
tire2 = [[tire alloc] init];
tire3 = [[tire alloc] init];
tire4 = [[tire alloc] init];
tirearray = [NSArray arrayWithObjects: tire1, tire2, tire3, tire4, nil];
}
return (self);
}
Тогда главная:
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Car *car = [[Car alloc] init];
[[car.tirearray objectAtIndex:0] setPressure: 32];
[pool drain];
return 0;
}
То, что я пытаюсь сделать, это выяснить, как отправлять сообщения на объекты в массиве Это все, что я хочу сделать, приведенный выше код создает, но возвращает неперехваченное исключение!. «NSRangeException», причина: «*** - [NSArray objectAtIndex:]: индекс (0) за пределами (0) '!!!
Как вы знаете, давление является просто переменной, входящей в класс шин, и были синтезированы методы геттера.
Затем я хочу напечатать что-то на консоли, например, «Давление шины X X PSI».
Это сводит меня с ума! Это должно быть просто! Аааа.
Заранее спасибо!
Но у меня все еще есть ошибка. Пожалуйста помоги!!! –
1. Не пишите ответа, изменяйте вопрос. 2. Какая ошибка вы сейчас получаете и где? – JeremyP
Спасибо. Я только начал использовать StackOverflow и не совсем понял, как его использовать. Я запомню это! «Ответ» отличается от комментария. Получил это: P –