新手越狱开发,如何调用self

刚开始做越狱开发。先从一个已有的工程做练习,防止出现方法找不到的问题。
这个是我工程中的一个类,我在其中添加了一个方法showAlertView。我想hook工程并在viewDidAppear中调用这个方法

#import "SLViewController.h"
@interface SLRootMyInfoViewController : SLViewController
-(NSString*)showAlertView;
@end

以下是我的Tweak.xm

%hook SLRootMyInfoViewController
-(void)viewDidAppear:(BOOL)animated
{
%orig;
[self showAlertView];
}
%end

执行make package 时报错


但如果将其中的[self showAlertView];改成

    UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:nil message:@"hello" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];
    [alertView show];

就没有问题。可以编译成功并且安装到手机上实现功能。
请问这个是怎么回事

2,还有各问题,我把SLRootMyInfoViewController.h文件放到目录下,在Tweak.xm中import它

#import "SLRootMyInfoViewController"

%hook SLRootMyInfoViewController
-(void)viewDidAppear:(BOOL)animated
{
%orig;
[self showAlertView];
}
%end

提示错误如下


为什么不能用improt来包含头文件呢

求大神帮忙看下 好几天搞不定了

#import “SLRootMyInfoViewController.h”
。。。。

:cry:

不只是头文件的问题吧,
增加方法 不是还要加个 %new 吗

我把头文件的内容写到Tweak.xm中 可以用self来调用方法了。 怎么引用头文件呢?这个头文件应该放在哪个路径下。
书上的列子RevealUtil.h 这个文件引用的时候为什么总是报错呢

可能我没说清楚 增加的方法是在原有的类里面增加的测试方法。

书上的例子都是放到 与Tweak.xm同级的目录
另外,#import 后面有.h , #import “xxxxx .h

多谢 果然是忘了.h

一楼已经告诉你了 :sweat_smile: