添加自定义ivars到iOS调整

时间:2014-01-18 17:44:01

标签: ios objective-c jailbreak tweak theos

如何在调整中使用以下代码定义自己的实例变量?这里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

1 个答案:

答案 0 :(得分:2)

不,我认为你不能将ivar添加到现有的类中。有class_addIvar函数但它不适用于现有类。在您的情况下,SBApplication已经定义,因此您无法在其中添加ivar。

我可以建议非常简单的解决方案 - 静态/全局(或两者)变量。例如,如果您只需要一个变量,它可以是BOOL变量。或者它可以是一个对象变量对的数组,如果你想要每个类实例的变量。后者将像ivar一样工作。