已分配的可可子类对象的实例变量

时间:2011-03-15 19:20:57

标签: cocoa variables object instance

我尝试了很多变体,为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,我尝试使用属性,删除了setter和getter并尝试了@synthesize ...而且我'检查了设置调用,他们正在接收各种长ID ...但无论我做什么,buttonAction方法从[snbi buttonid]返回零;无论按下哪个按钮(可能有数百个按钮,数量也不一样。我必须知道按下了哪个按钮,我不能为它们编写单独的目标例程,因为我不知道会有多少个按钮在任何时候。)

似乎需要向子类添加实例变量是如此明显,并且访问它们的机制如此基本,没有人会谈论它。我无法找到导致工作代码的任何内容。 Cocoa文档提到了它,但没有证明它,或者至少我能找到它。

任何洞察力,任何人?

0 个答案:

没有答案