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