1
我正在学习Objective-C,为了练习,我为OS X编写了一个简单的随机迷宫生成器,该工具正常工作。接下来,我尝试添加更多与按钮的交互,但是我遇到了实例变量的问题,因为它们不保留我赋值的值。我遇到了关于同一问题的多个问题,但解决方案并没有解决我的问题。我也测试过,如果相同的问题仍然存在于程序的简化版本中,那么它会这样做。实例变量不保留其值
我想我做错了什么,但我不知道是什么。下面是我所做的:
- 创建一个新的项目
- 添加一个NSView的子类,称为“TestClass的”
- 添加在MainMenu.xib
- 增加了一个对象在窗口类TestClass的景色识别TestClass在MainMenu.xib
- 添加一个按钮视图,并设置其标签1
- 添加以下代码来TestClass.h和TestClass.m以及连接在按钮将其:
TestClass.h: #进口
@interface TestClass : NSView
{
NSNumber *number;
NSButton *test;
}
@property (nonatomic, retain) NSNumber *number;
@property (assign) IBOutlet NSButton *test;
- (IBAction)testing:(id)sender;
@end
TestClass.m: #进口 “TestClass.h”
@implementation TestClass
@synthesize number;
@synthesize test;
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code here.
}
return self;
}
- (IBAction)testing:(id)sender
{
self.number = [[NSNumber numberWithLong:[sender tag]] retain];
}
- (void) drawRect:(NSRect)dirtyRect
{
NSLog(@"%@", number);
}
@end
每当我按下按钮,刚刚的NSLog返回null几次。
我通常自己弄清楚所有事情(最终......),但是这一次真的让我发疯,所以有人能帮助我吗?