2014-01-18 31 views
1

如何在調整中像下面的代碼那樣定義我自己的實例變量?這裏myBool是新的。我在iOS 7.0.4中使用Theos/Logos。這可能嗎?在任何地方都找不到它。我知道MSHookIvar,但只適用於現有的變量。將定製ivars添加到iOS調整

@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

不,我不認爲你可以添加伊娃到現有的類。有class_addIvar函數,但它不適用於現有的類。在你的情況下,SBApplication已經定義,所以你不能添加伊娃。

我可以建議非常簡單的解決方案 - 靜態/全局(或兩者)變量。例如,如果您只需要一個變量,則它可以是BOOL變量。或者,如果您需要每個類實例的變量,則它可以是一組對象變量對。後者將像一個階級伊娃一樣工作。

+0

我的確跟隨後者。我創建了一個全局的'NSMutableDictionary',並將它與應用程序包標識符一起用作鍵。很棒。 – user2274109