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幾次。
我通常自己弄清楚所有事情(最終......),但是這一次真的讓我發瘋,所以有人能幫助我嗎?