【发布时间】:2015-05-20 06:56:12
【问题描述】:
我最近创建了一个可以从其他类调用的方法,这是我的代码。
在 ViewController1.h 中
+ (void)updateName:(id)sender;
在 ViewController1.m 中
+ (void)updateName:(id)sender {
}
该方法正在调用和工作,这很好但是我在 ViewController1.m 文件中有另一个方法是
-(void)updateString {
NSLog(@"IT WORKED");
}
但是,我尝试在我的 updateName 方法中这样调用它:
+ (void)updateName:(id)sender {
[self updateString];
}
但我收到一条错误消息,提示“没有已知的选择器'updateString' 的类方法”谁能告诉我为什么会发生这种情况以及如何调用此方法?谢谢。
【问题讨论】:
-
不能从类方法调用实例方法。
-
建立在rmaddy的评论之上,+表示类方法,-表示实例方法,以防你不知道
-
@rmaddy +1 当然,您可以在类对象的方法中向实例对象发送消息。但是你不应该使用
self。 ;-) -
有没有办法从类方法中调用实例方法,或者绕过它?
-
那么一切都必须成为实例方法,并将
ViewController1的实例传递到您尝试访问它的任何地方,我猜您正在尝试设置您所在的视图控制器的文本即将继续?
标签: objective-c class methods viewcontroller