2010-12-04 37 views
0

我有四個tabViewItems,具有標識符1,2,3,並分配4 IB,然後設置爲常數,即:NSTabViewItem標識符是NSNumber的在一個範圍內,的NSString在另一個

#define kTabViewSubject  1 

當這tabViewItem被選中的測試,它的工作原理治療標識符作爲NSNumbers,像這樣:

if ([self.drawerTabView selectedTabViewItem] identifier] intValue]]] == kTabViewSubject]) 
// do something 

但選擇tabViewItem的時候,如果我把相同的標識符作爲一個NSNumber,像這樣...

[self.drawerTabView selectTabViewItemWithIdentifier:[NSNumber numberWithInt:kTabViewSubject]]; 

...標識符被評估爲一個巨大的類似地址的數字,我得到一個「越界」異常。

什麼工作是把標識符作爲一個NSString,像這樣的:「ID」

#define kTabViewSubjectX  @"1" 
// -- 
[self.drawerTabView selectTabViewItemWithIdentifier:kTabViewSubjectX]; 

我明白NSTabViewItem的標識符屬性被設置爲一個通用的,但爲什麼它歸類不一致?

回答

0

intValue是NSString和NSNumber的一種方法。標識符始終是字符串。

相關問題