我嘗試從另一個類訪問公共方法。我已經嘗試了很多我在網上找到的例子,但是他們沒有按照我想要的方式工作。訪問公共方法的目標c
Class1.h
@interface anything : NSObject {
IBOutlet NSTextField *label;
}
+ (void) setLabel:(NSString *)string;
- (void) changeLabel:(NSString *)string2;
Class1.m
+ (void) setLabel:(NSString *)string {
Class1 *myClass1 = [[Class1 alloc] init];
[myClass1 changeLabel:string];
NSLog(@"setLabel called with string: %@", string);
}
- (void) changeLabel:(NSString *)string2 {
[label setStringValue:string2];
NSLog(@"changeLabel called with string: %@", string2);
}
Class2.m
- (IBAction)buttonPressed {
[Class1 setLabel:@"Test"];
}
很奇怪的是,在NSLogs,一切都很好,在這兩個NSLogs,該字符串是「Test」,但textField的stringValue不會更改!
您混淆了類和對象方法。 這個例子並不合理。 你只是暫時在'+ setLabel:'中創建一個對象,但是你永遠不會對它做任何事情/永遠不會返回它。 告訴我你想做什麼,我可以幫你。 – NSAddict
爲什麼使用靜態方法?這是一個單身嗎? –
@RamyAlZuhouri不,它不是單身人士,那需要一個靜態變量。 – NSAddict