Я сделал свой собственный класс полученным NSObject и здесь являюсь моим кодом:
-(void) parseRow:(NSDictionary*) dictionary {
NSArray* arName = [[dictionary valueForKey:displayname] componentsSeparatedByString:@"+"];
[self setDriverName:[arName objectAtIndex:0]];
[self setDriverSurname:[arName objectAtIndex:1]];
[arName release]; // this give problem!
}
и по моему мнению:
driverStats = [[DriverStats alloc] init];
// driverStats is declared in the header:
DriverStats* driverStats;
@property (nonatomic,retain) DriverStats* driverStats;
[driverStats parseRow:dictionary];
Если я добавляю [arName выпуск] в моем классе, когда я выхожу из parseRow метода, у меня есть ошибка EXC_BAD_ACCESS...., но это неправильно?? Я использовал массив и после того, как я выпустил... Я думаю, что ошибка будет состоять в том, если я не выпускал указатель.. или нет???заранее спасибо
Проблему легко решить. В вашем массиве NSArray * только 0 keepCount. Поскольку вы используете фабричный метод componentsSeparatedByString :, он уже возвращает автоматически выпущенный массив. Итак, вам больше не нужно выпускать свой массив.
Еще одна вещь, о которой вам нужно позаботиться, - это setDriverName: и setDriverSurname :, убедитесь, что вы сохранили / скопировали объект туда, в противном случае, когда массив будет освобожден, эти объекты также будут освобождены и снова EXEC_BAD_ACCESS