2011-11-23 105 views
1

我有一個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

回答

8

很有可能意味着__menuTitlesnil首次周圍。發送消息到nil將導致返回0。

+0

最好的答案,我與靜態NSArray * __ menuTitles =零;並在cellForRowAtIndexPath中構建列表。問題排序,謝謝 – JulianB

+0

接受答案標記的問題解決,如果你請 – Warkst

+0

是的,但你必須等待10分鐘才能接受...耐心是一種美德! – JulianB