我有四个tabViewItems,在IB中分配了标识符1,2,3和4,然后设置为常量,即:
#define kTabViewSubject 1
当测试选择哪个tabViewItem时,它可以将标识符视为NSNumbers,如下所示:
if ([self.drawerTabView selectedTabViewItem] identifier] intValue]]] == kTabViewSubject])
// do something
但是在选择tabViewItem时,如果我将相同的标识符视为NSNumber,就像这样......
[self.drawerTabView selectTabViewItemWithIdentifier:[NSNumber numberWithInt:kTabViewSubject]];
...标识符被评估为一个类似地址的巨大数字,我得到了一个“超出界限”的例外。
将标识符视为NSString是有效的,如下所示:
#define kTabViewSubjectX @"1"
// --
[self.drawerTabView selectTabViewItemWithIdentifier:kTabViewSubjectX];
我理解NSTabViewItem的标识符属性被设置为通用的“id”。但为什么它被归类为不一致?
答案 0 :(得分:0)
intValue是NSString和NSNumber的方法。标识符一直是字符串。