2013-02-23 4 views
3

Я думаю, что я делаю довольно основную ошибку, но я использую NSMutableArray, и это как-то не добавляет объект, я отправляю его по-своему. У меня есть свойство (и обобщать)NSMutableArray не добавляет объекты

@property (nonatomic, strong) NSMutableArray *kpiStorage; 

, а затем:

ExampleObject *obj1 = [[ExampleObject alloc] init]; 
[kpiStorage addObject:obj1]; 
ExampleObject *obj2 = [[ExampleObject alloc] init]; 
[kpiStorage addObject:obj2]; 

NSLog(@"kpistorage has:%@", [kpiStorage count]); 

и что всегда возвращает (NULL) в консоли. Что я недопонимаю?

+2

Перед отправкой на Ваш вопрос, пожалуйста, не забудьте взглянуть на список связанных вопросов, которые появляются. В прошлом этот вопрос снова и снова отвечал. – rmaddy

+0

Простите, почему-то поиск не вел меня так – Luckystrik3

+0

Я не имел в виду поиск. Когда вы вводите вопрос, SO показывает вам много возможных связанных вопросов. Всегда проверяйте их перед отправкой вопроса. – rmaddy

ответ

13

Убедитесь, что вы выделили память для kpiStorage.

self.kpiStorage = [[NSMutableArray alloc] init]; 
4

Наверху забыть выделенную память для вашего NSMutableArray, ваше форматирование NSLog также неверно. При запуске приложения произойдет сбой. Следующие изменения необходимы

Вам нужно будет добавить

self.kpiStorage = [[NSMutableArray alloc] init]; 

и изменить NSLog к следующему

NSLog(@"kpistorage has:%d", [self.kpiStorage count]); 
0

Если вы не используете ARC убедитесь, что вы не должны создать утечку памяти в вашем проекте. Поэтому лучше всего было бы выделить как этот

NSMutableArray *array = [[NSMutableArray alloc] init]; 
self.kpiStorage = array; 
[array release]; 

сделать это привычкой делать непосредственно не делать

self.kpiStorage = [[NSMutableArray Alloc] инициализации];

в этом случае сохранить счетчик вашей собственности в увеличивается на 2. Для дальнейшего чтения вы можете stydy Memory Leak when retaining property

+0

, пожалуйста, сделайте его сильным, если это свойство! –

Смежные вопросы