indexOfObject возвращает 0 в первый раз вместо NSNotFound - PullRequest
1 голос
/ 23 ноября 2011

У меня есть таблица в UIPopoverController, в viewDidAppear Я проверяю значение метки ячейки, которая хранится в standardUserDefaults. (Так что я могу выделить последний выбранный вариант).

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *lastMenu = [prefs objectForKey:@"location"];

NSUInteger index = [__menuTitles indexOfObject:lastMenu];

NSLog(@"lastMenu is %@",lastMenu);
NSLog(@"lastMenu index is %i",index);

Производит это в первый раз, когда меню активируется

lastMenu is 
lastMenu index is 0

Последующие клики правильно сообщают 2147483647, что означает NSNotFound

lastMenu is 
lastMenu index is 2147483647

Почему 0 возвращается в первый раз ???

Вот массив

__menuTitles = [[NSArray alloc] initWithObjects:
                @"North America", 
                @"Western Europe", 
                @"Asia Pacific", 
                @"Latin America", 
                @"Central & Eastern Europe", 
                @"Middle East", 
                @"Africa", 
                nil];

1 Ответ

8 голосов
/ 23 ноября 2011

Вероятно, означает, что __menuTitles - это nil в первый раз.Отправка сообщения на nil приведет к возвращению 0.

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