ghi*_*boz 0 iphone exc-bad-access class objective-c instance
我创建了自己的类,由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!
}
Run Code Online (Sandbox Code Playgroud)
在我看来:
driverStats = [[DriverStats alloc] init];
// driverStats is declared in the header:
DriverStats* driverStats;
@property (nonatomic,retain) DriverStats* driverStats;
[driverStats parseRow:dictionary];
Run Code Online (Sandbox Code Playgroud)
如果我在我的类中添加[arName release],当我从parseRow方法退出时,我有EXC_BAD_ACCESS错误....但是它错了?我使用数组并在我发布之后...我认为错误将是如果我没有释放指针..或不?提前致谢
问题很容易解决.您的NSArray*数组只有0个retainCount.因为您使用工厂方法componentsSeparatedByString:,它已经返回一个自动释放的数组.因此,您不再需要释放阵列.
你需要关心的另一件事是setDriverName:和setDriverSurname :,确保你保留/复制对象,否则当释放数组时,这些对象也会被释放,再次EXEC_BAD_ACCESS