調用某個方法的方式讓我非常瘋狂!不幸的是我在已經提出的問題中找不到它。 我知道如何分配和初始化 但事情是在我的程序中我需要調用其自己的類內的方法 這裏是一個示例實現,當然我知道我可以做到這一點在十幾種更簡單的方法,但在程序中我開發我有一個非常複雜的案例,我需要這樣做調用另一個類的(實例)方法
在我的NIB文件中我有一個標籤和兩個按鈕。 標籤和其中一個按鈕(稱爲「設置爲今天」)鏈接在appDelegate 另一個按鈕(稱爲「設置爲十天後」)鏈接到classTwo 這裏是所有文件的代碼 雖然代碼不會產生任何錯誤,但觸發第二個按鈕不起作用 什麼是調用該方法的正確方法。
AppDelegate.h:
@interface AppDelegate : NSObject <NSApplicationDelegate>
{
IBOutlet NSTextField *label;
NSDate *toDay;
}
-(IBAction)setToToday:(id)sender;
-(void)updateLabelText;
-(void)setToTenDays;
@property (assign) IBOutlet NSWindow *window;
@end
AppDelegate.m:
#import "AppDelegate.h"
@implementation AppDelegate
@synthesize window = _window;
-(IBAction)setToToday:(id)sender
{
toDay=[NSDate date];
[self updateLabelText];
}
-(void)updateLabelText
{
[label setStringValue:[NSString stringWithFormat:@"%@",toDay]];
}
-(void)setToTenDays
{
int secondsPerDay=60*60*24;
toDay = [NSDate dateWithTimeInterval:10*secondsPerDay sinceDate:toDay];
}
@end
ClassTwo.h
@interface ClassTwo : NSObject
-(IBAction)setToTenDaysLater:(id)sender;
@end
ClassTwo.m
#import "ClassTwo.h"
#import "AppDelegate.h"
@implementation ClassTwo
-(IBAction)setToTenDaysLater:(id)sender
{
AppDelegate *classOne=[[AppDelegate alloc] init];
[classOne setToTenDays];
[classOne updateLabelText];
}
@end
爲什麼我無法將標籤設置爲新日期? 這兩個對象都在NIB文件中,並設置了動作和插座 非常感謝您的幫助。
P.S.以我真實的體驗,例如,我在CustomWindow Class中使用觸控板事件來更改標籤。
哇!謝謝,這工作!你能幫忙以編程方式設置代表嗎? – Nabi
這只是一個將屬性添加到ClassTwo實例並在代碼中進行設置的問題,我已在上面添加了它。 –