如何在调整中使用以下代码定义自己的实例变量?这里myBool
是新的。我在iOS 7.0.4中使用Theos / Logos。这可能吗?在任何地方找不到任何相关信息。我知道MSHookIvar,但只适用于现有变量。
@interface SBApplication {
BOOL myBool;
}
- (void)setBadge:(id)arg1;
@end
%hook SBApplication
- (void)setBadge:(id)arg1 {
%orig;
if(myBool == NO){
NSLog(@"myBool is NO");
}
}
%end
答案 0 :(得分:2)
不,我认为你不能将ivar添加到现有的类中。有class_addIvar
函数但它不适用于现有类。在您的情况下,SBApplication
已经定义,因此您无法在其中添加ivar。
我可以建议非常简单的解决方案 - 静态/全局(或两者)变量。例如,如果您只需要一个变量,它可以是BOOL
变量。或者它可以是一个对象变量对的数组,如果你想要每个类实例的变量。后者将像ivar一样工作。