从我在这里的钩子类中调用不同的类方法

时间:2015-01-23 01:13:58

标签: ios objective-c jailbreak theos

%hook FirstClass
 [self method2];
 %orig
%end

method2仅适用于其他类

在这种情况下如何调用它?

到目前为止我所知道的:

  • 使用NotificationCenter通知第二类加载method2
  • 与使用%c有些相关但不熟悉完整解释

但这很复杂,有没有其他方法可以这样做

- 更新

我尝试了%c但是我收到了这个错误

Tweak.xm:86:48: error: class method '+class' not found (return type
  defaults to 'id') [-Werror,-Wobjc-method-access]

                                           ^~~~~~~~~~~~~~~~~~

此处的应用解决方案> THEOS: compiling error when calling method in other class (logos)

但似乎无法正常工作

1 个答案:

答案 0 :(得分:1)

要调用另一个类的方法,它必须是一个类方法(加号)。然后你可以[%c(ClassName) method:];如果它不是类方法(减号)那么你必须有一个该类的实例。有时您可以找到类的共享实例,然后使用方法。 [[%c(ClassName) sharedInstance].propertyWhichIsOfAClassYouActuallyWant method:]