我正在尝试从另一个Class中的另一个类运行一个函数。
我想从班级-(void)updateClock
SBAwayView
我试过[[%c(SBAwayDateView) sharedInstance] updateClock];
我也试过[%c(SBAwayDateView) updateClock];
但我无法让它发挥作用。 (SpringBoard崩溃,我在安全模式)
以下是SBAwayDateView
类
%hook SBAwayDateView
-(void)updateClock
{
//do some stuff
//run %orig;
%orig;
}
%end
如何在-(void)updateClock
课程中运行SBAwayView
?
%hook SBAwayView
-(void)updateInterface
{
//do some stuff
//How can I run -(void)updateClock here?
//run %orig;
%orig;
}
%end
提前致谢。
答案 0 :(得分:4)
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;
}
%end