为什么我的方法没有调用?

Why isn't my method calling?

您好,我正在尝试从另一个 class 调用一个方法,但它不起作用。

这是我要调用的方法,"updateName"。

@interface Content1ViewController ()

@end

@implementation Content1ViewController

+ (void)updateName:(id)sender {
    NSLog(@"IT WORKED");
}

- (void)viewDidLoad {
    [super viewDidLoad];
}

@end

然后我尝试在另一个 class 的方法中调用它。

-(void)randomMethod {

[Content1ViewController updateName];

}

然后我在 "update name" 处收到错误消息,因为它无法识别该方法?我遵循了这个 answer 但它对我不起作用。我已确定我也已将 classes 导入彼此。

有人可以告诉我为什么它不起作用吗?谢谢

这里的updateName是以sender为参数的方法

[Content1ViewController updateName:SOME_SENDER_ID_INSTANCE]; //Should work. Because your method definition says it needs `id` as param.

updateName 有一个参数 sender,而您在调用该方法时没有传递它,因此出现错误

确保在 Content1ViewController 的头文件中声明该方法,这将使它成为 public。此外,调用方方法的签名与最初声明的方法不同。 updateName 需要一个 (id)sender 的参数,请确保将一些引用传递给它以调用正确的方法。

您的声明与方法签名不匹配,即您需要调用:

[Content1ViewController updateName:SOMETHING_HERE];