2009-07-28 2 views
0

Я пытаюсь инициализировать NSArray в методе loadView. И когда я его инициализирую, он имеет определенный адрес в памяти.Проблема при попытке доступа к NSArray

Затем, когда я касаюсь экрана, я вызываю метод обновления. Когда я отлаживать массив смесей здесь, он имеет тот же адрес, но содержание {(целое) [$ подсчет VAR]} объекты ...

Вот мой код:

@implementation MCPickerViewController 
#pragma mark Overriden methods 

- (void)loadView { 
    [super loadView]; 

    blends = [NSArray arrayWithObjects:@"Piepje", @"Paapje", nil]; 

    pickerView = [[MCPickerView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]]; 
    pickerView.delegate = self; 
    [self setView:pickerView]; 
} 

#pragma mark Delegate methods for MCPickerView 

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 
    [self refresh]; 
} 

#pragma mark Personal methods 

- (void)refresh { 
    NSLog(@"count: %i", [blends count]); 
} 
@end 

Я надеюсь, кто-то может мне помочь, потому что я застрял надолго!

Thnx !!

ответ

1

Я не совсем уверен, в чем проблема, но вам нужно сохранить массив смешивания (и отпустить его где-нибудь).

Я также рекомендую вам прочитать Apple's memory management guide понять, когда вы должны сохранить, релиз, autorelease и т.д.

+0

да «{(интермедиат) [$ подсчет VAR]}» означает, что объект больше не действует (он пытался получить длину массива, но это не сработало); что означает, что он был выпущен. переменные экземпляра обязательно должны быть сохранены – newacct

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