需求: 我需要使用Theos在Tweak.xm中声明一个方法(%new)并调用
编译报错:
Tweak.xm:16:11: error: instance method '-helloWorld' not found (return type
defaults to 'id') [-Werror,-Wobjc-method-access]
[self helloWorld];
代码:
%hook NewSettingViewController
- (void)viewDidAppear:(BOOL)animated {
%orig;
[self helloWorld];
}
%new
- (void)helloWorld {
NSLog(@"test");
}
%end
操作步骤:我就是这样正常流程声明方法并调用,编译时出错。
任何其他描述: 请问是我哪里没有设置对吗。或者调用%new方法的方式错误么?
环境: Mac 10.12.6,编译的IOS的Dylib。
最后,当我使用
[self performSelector:@selector(helloWorld)];
这样的方式去调用的时候,是OK的。
但是我想知道,为什么会出现这样的错误。难道是%new声明的方法不能直接调用吗。