indexOfObject第一次返回0而不是NSNotFound

时间:2011-11-23 14:17:23

标签: iphone objective-c ios nsarray

我在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 个答案:

答案 0 :(得分:8)

可能意味着__menuTitles第一次出现nil。向nil发送消息将导致返回0。