indexOfObject首次返回0而不是NSNotFound

问题描述:

我有一个UIPopoverController的表格,我在viewDidAppear上检查存储在standardUserDefaults中的单元格标签的值。 (所以我可以选择最后一个选项)。indexOfObject首次返回0而不是NSNotFound

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]; 
+0

什么是'__menuTitles'?它可以是'无'? – jv42

+0

这可以是有用的,如果你会告诉我们如何__menuTitles初始化 – Denis

很有可能意味着__menuTitlesnil首次周围。发送消息到nil将导致返回0。

+0

最好的答案,我与静态NSArray * __ menuTitles =零;并在cellForRowAtIndexPath中构建列表。问题排序,谢谢 – JulianB

+0

接受答案标记的问题解决,如果你请 – Warkst

+0

是的,但你必须等待10分钟才能接受...耐心是一种美德! – JulianB