2010-12-04 10 views
0

であるコンテキストでのNSNumber、NSStringのであり、4は、すなわちIBに割り当てられ、その後定数として設定:NSTabViewItem識別子は、識別子1、2、3で、Iは4 tabViewItemsを有する別の

#define kTabViewSubject  1 

場合

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

をしかしtabViewItemを選択し、私はこのようなのNSNumber、同じ識別子を扱う場合...

:tabViewItemが選択されているテストは、それはこのように、NSNumbersなどの識別子を処理するために動作します

...識別子は巨大なアドレスのような数として評価され、「境界を越えて」例外が発生します。どのような作品

はこのように、NSStringのよう識別子を扱うことです:「ID」

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

は私がNSTabViewItemの識別子プロパティがジェネリックとして設定されて理解しかし、なぜそれが一貫性なく分類されますか?

答えて

0

intValueはNSStringとNSNumberのメソッドです。識別子は、すべての文字列でした。