У меня есть четыре 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, например: «ид»
#define kTabViewSubjectX @"1"
// --
[self.drawerTabView selectTabViewItemWithIdentifier:kTabViewSubjectX];
Я понимаю свойство идентификатора NSTabViewItem имеет значение в качестве родового Но почему это непоследовательно классифицировано?