0

我有四个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”。但为什么它的分类不一致?

4

1 回答 1

0

intValue 是 NSString 和 NSNumber 的方法。标识符一直是字符串。

于 2010-12-05T15:05:04.640 回答