我正在尝试运行另一个类中另一个类的函数。
我想从SBAwayView类调用-(void)updateClock
我尝试过[[%c(SBAwayDateView) sharedInstance] updateClock];
我也尝试过[%c(SBAwayDateView) updateClock];,但是我不能让它工作。( SpringBoard崩溃,我处于安全模式)
下面是SBAwayDateView类
%hook SBAwayDateView
-(void)updateClock
{
//do some stuff
//run %orig;
%orig;
}
%end如何在下面的SBAwayView类中运行-(void)updateClock?
%hook SBAwayView
-(void)updateInterface
{
//do some stuff
//How can I run -(void)updateClock here?
//run %orig;
%orig;
}
%end提前谢谢。
发布于 2013-07-08 15:51:34
SBAwayDateView既没有sharedInstance也没有updateClock 类方法。
在使用非单例类的情况下,您需要在其他类中找到该类的有效实例-它可能包含在实例变量中,或者从某个方法返回。或者,您可以挂接init方法并自己保存某个实例。这取决于你想做什么。
在您的示例中,SBAwayView具有实例变量SBAwayDateView *_dateHeaderView -问题已解决
%hook SBAwayView
-(void)updateInterface
{
//do some stuff
SBAwayDateView* dateView = MSHookIvar<SBAwayDateView*>(self, "_dateHeaderView");
[dateView updateClock];
//run %orig;
%orig;
}
%endhttps://stackoverflow.com/questions/17512433
复制相似问题