NSTabViewItem标识符在一个上下文中是NSNumber,在另一个上下文中是NSString
我有四个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”。但为什么它被归类为不一致?
没有找到相关结果
已邀请:
1 个回复
目浆搽