переменные экземпляра для выделенных объектов подкласса какао - PullRequest
1 голос
/ 15 марта 2011

Я пробовал очень большое количество вариантов объявления пары длинных переменных для подкласса NSButton;в основном, когда объект создается, я хочу вставить туда несколько значений, чтобы мои программно созданные кнопки работали ...

pool = [[NSAutoreleasePool alloc] init];
...
scbi = [[[MyNSButtonSubClass alloc] initWithFrame: buttonInitRect] 
                             autorelease];
[scbi setButtonid: myLongButtonId];
[scbi setTarget: self];
[scbi setAction: @selector(buttonAction:];
...
[pool release];

будет работать с этим:

- (IBAction)buttonAction:(id)sender
{
    MyNSButtonSubclass *snbi;
    long buttonid;
    snbi = (MyNSButtonSubclass *)sender
    buttonid = [snbi buttonid];
}

в подклассе у меня есть:

- (void)setButtonid:(long)x
{
    buttonid = x;
}

... Я пытался объявить buttonid long в глобальной области видимости и в структуре интерфейса в заголовочном файле, я попытался использовать свойства, удалилсеттер и геттер и попытались @synthesize ... и я проверил установленные вызовы, они получают различные длинные идентификаторы ... но что бы я ни делал, метод buttonAction возвращает нули от [snbi buttonid];независимо от того, какая кнопка нажата (может быть несколько сотен, и число варьируется. Я должен знать, какая кнопка была нажата, и я не могу написать отдельную целевую подпрограмму для них, потому что я не знаю, сколько их будетв любое время.)

Кажется, что необходимость добавления переменных экземпляра к подклассу настолько очевидна, а механизм доступа к ним настолько прост, что никто никогда не говорит об этом.Я не могу найти ничего об этом, что приводит к рабочему коду.Документы Какао упоминают об этом, но не демонстрируют это, или, по крайней мере, то, что я мог бы найти.

Любое понимание, кто-нибудь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...