您好我正在尝试从另一个类调用一个方法,但它无效。
这是我想要调用的方法," updateName"。
@interface Content1ViewController ()
@end
@implementation Content1ViewController
+ (void)updateName:(id)sender {
NSLog(@"IT WORKED");
}
- (void)viewDidLoad {
[super viewDidLoad];
}
@end
然后我尝试在另一个类的方法中调用它。
-(void)randomMethod {
[Content1ViewController updateName];
}
然后我在"更新名称"时收到错误因为它没有认识到这种方法?我跟着这个answer,它不适合我。我已经确定我已经将这些课程相互导入了。
有人可以告诉我为什么它不起作用?感谢。
答案 0 :(得分:3)
确保在didFinishLaunchingWithOptions
的头文件中声明方法,这将使其公开。此外,调用方法的签名与最初声明的方法不同。 UINavigationBar.appearance().tintColor = myColor
let navigationController = UIApplication.sharedApplication().windows[0].rootViewController as! UINavigationController
navigationController.navigationBar.barTintColor = myColor
navigationController.navigationBar.titleTextAttributes = [NSForegroundColorAttributeName : myTextColor]
navigationController.navigationBar.translucent = false
navigationController.setNeedsStatusBarAppearanceUpdate()
期望参数为Content1ViewController
,请确保将其传递给某个引用以调用正确的方法。
答案 1 :(得分:0)
这里updateName是一个将sender作为参数的方法。
[Content1ViewController updateName:SOME_SENDER_ID_INSTANCE]; //Should work. Because your method definition says it needs `id` as param.
答案 2 :(得分:0)
updateName有一个参数发送者,你在调用方法时没有传递它,因此你会收到错误
答案 3 :(得分:0)
您的声明与方法签名不匹配,即您需要致电:
[Content1ViewController updateName:SOMETHING_HERE];