iphone EXC_BAD_ACCESS с помощью моего собственного класса

Я сделал свой собственный класс полученным 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...., но это неправильно?? Я использовал массив и после того, как я выпустил... Я думаю, что ошибка будет состоять в том, если я не выпускал указатель.. или нет???заранее спасибо

0
задан vodkhang 18 September 2010 в 14:26
поделиться

1 ответ

Проблему легко решить. В вашем массиве NSArray * только 0 keepCount. Поскольку вы используете фабричный метод componentsSeparatedByString :, он уже возвращает автоматически выпущенный массив. Итак, вам больше не нужно выпускать свой массив.

Еще одна вещь, о которой вам нужно позаботиться, - это setDriverName: и setDriverSurname :, убедитесь, что вы сохранили / скопировали объект туда, в противном случае, когда массив будет освобожден, эти объекты также будут освобождены и снова EXEC_BAD_ACCESS

6
ответ дан 4 September 2019 в 00:47
поделиться