将自定义 ivar 添加到 iOS 调整中



我应该如何在调整中定义自己的实例变量,类似于以下代码?这里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 一样工作。

最新更新