Я искал и не получил ответа. Я создал 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
Вы не должны беспокоиться о том, что такое счет. То, что вы должны сделать, это обязательно выпустить все, что у вас есть. Поскольку вы не выделяете, не сохраняете и не копируете его, вы не являетесь его владельцем. 'buttons' сохранит его, но тогда это будет' 'кнопки' 'отпустить его. (Вы несете ответственность за освобождение 'кнопок', однако, поскольку вы« распределяете »его) – cobbal