Почему я не могу получить доступ к NSMutable Array в моем методе? - PullRequest
2 голосов
/ 01 марта 2012

Я пытаюсь добавить объект в мой массив NSMutable в моем методе, но продолжаю получать ошибку. Это работает, если я добавлю объект в init. Он не говорит, что что-то не так, пока я не попытаюсь выполнить код.

Это ниже #import, где я объявляю два массива:

NSMutableArray *actions1, *actions2;

Это в init:

actions1 = [NSMutableArray array];

Здесь я пытаюсь добавить 1 в массив:

- (void) storeAction:(int) action {
[actions1 addObject:@"1"];
}

Тот же код работает в int, как я говорил ранее.

Я также хотел бы, чтобы он сохранял значение int, объявленное как "действие", но это тоже не сработало.

[addObject:@"%d", action];

Ответы [ 3 ]

5 голосов
/ 01 марта 2012

[NSMutableArray array]; возвращает автоматически освобожденный объект, к тому времени, когда вы пытаетесь получить к нему доступ, он, скорее всего, уже освобожден. Попробуйте [[NSMutableArray alloc] init]; вместо этого. А чем вам нужно срочно проверить правила управления памятью .

2 голосов
/ 01 марта 2012

Попробуйте этот код

actions1 = [[NSMutableArray alloc] init];

Надеюсь, это поможет.

0 голосов
/ 01 марта 2012

В качестве альтернативы, в вашем заголовочном файле:

@property(nonatomic, strong)NSMutableArray *actions1;

Затем в файле имплантации:

@synthesize actions1 = _actions1;

Тогда вы можете получить доступ к вашему массиву как self.actions1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...