У меня есть четыре tabViewItems, с идентификаторами 1, 2, 3 и 4, назначенными в IB, и затем настроенными как константы, то есть:
#define kTabViewSubject 1
При проверке, какой tabViewItem выбран, он работает дляобрабатывать идентификаторы как NSNumbers, например:
if ([self.drawerTabView selectedTabViewItem] identifier] intValue]]] == kTabViewSubject])
// do something
Но при выборе tabViewItem, если я рассматриваю тот же идентификатор, что и NSNumber, как этот ...
[self.drawerTabView selectTabViewItemWithIdentifier:[NSNumber numberWithInt:kTabViewSubject]];
... идентификатороценивается как огромное адресоподобное число, и я получаю исключение «за пределами».
Что работает, так это обрабатывать идентификатор как строку NSSt, например:
#define kTabViewSubjectX @"1"
// --
[self.drawerTabView selectTabViewItemWithIdentifier:kTabViewSubjectX];
Я понимаю NSTabViewItem'sСвойство идентификатора устанавливается как общий «идентификатор». Но почему оно непоследовательно классифицируется?