Идентификатор NSTabViewItem - это NSNumber в одном контексте, NSString в другом - PullRequest
0 голосов
/ 04 декабря 2010

У меня есть четыре 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Свойство идентификатора устанавливается как общий «идентификатор». Но почему оно непоследовательно классифицируется?

1 Ответ

0 голосов
/ 05 декабря 2010

intValue - это метод NSString, а также NSNumber.Идентификаторы всегда были строками.

...