我在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];

最佳答案

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

关于iphone - indexOfObject第一次返回0而不是NSNotFound,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8243667/

10-11 22:47