0
我搜索了並沒有答案。我創建了一個NSMutableArray,並且在一個訪問位置出現EXC_BAD_ACCESS錯誤。 這裏。這是在聲明.h文件:NSMutableArray訪問問題
NSMutableArray *buttons;
...
@property (nonatomic, retain)NSMutableArray *buttons;
這是合成和implimenting:
@synthesize buttons;
...
- (id)init {
self = [super init];
if(self != nil) {
buttons = [[NSMutableArray alloc] init];
}
return self;
}
...
-(void)addButtonWithImage:(Image*)image {
Image *button = image;
[buttons addObject:button];
[button release];
}
...
-(void)replaceButtonAt:(int)num with:(Image*)image {
Image *button = image;
[buttons replaceObjectAtIndex:num withObject:button]; <<===EXC_BAD_ACCESS
[button release];
}
但是,當我使用這個:
-(void)renderButton:(int)num atPoint:(CGPoint)point center:(BOOL)center{
Image *button = [buttons objectAtIndex:num];
[button renderAtPoint:point centerOfImage:center];
}
它的工作原理
謝謝,這工作,但我認爲,因爲我已經將對象存儲在數組中,它將有一個保留計數爲2,我不得不把它放下一個。或者我只存儲一個指向該對象的指針? – Danegraphics 2010-04-09 12:26:05
你永遠不應該擔心保留數是多少。你應該做的是確保釋放你擁有的任何東西。既然你沒有分配,保留或複製它,你不擁有它。 'buttons'會保留它,但它將由''buttons'釋放它。 (然而,當你分配它時,你有責任釋放'buttons') – cobbal 2010-04-09 14:15:54