我应该如何在调整中定义自己的实例变量,类似于以下代码?这里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
不,我认为您不能将 ivar 添加到现有类中。有class_addIvar
函数,但它不适用于现有类。在您的情况下,SBApplication
已经定义,因此您无法在其中添加 ivar。
我可以建议非常简单的解决方案 - 静态/全局(或两者兼而有之)变量。例如,如果您只需要一个变量,它可以是BOOL
变量。或者,如果您希望每个类实例都有变量,它可以是对象变量对的数组。后者将像类 ivar 一样工作。