我目前正在測試IOS的私有框架,目前我正試圖弄清楚如何檢查夜班是否啓用。作爲參考,我正在使用的頭文件位於here。從頭文件中獲取實例函數
這裏是我使用下面的代碼:
if (!(NSClassFromString(@"CCUINightShiftSectionController"))) {
dlopen("System/Library/PrivateFrameworks/ControlCenterUI.framework/ControlCenterUI", RTLD_LOCAL);
}
NSObject *manager = [NSClassFromString(@"CCUINightShiftSectionController") performSelector:NSSelectorFromString(@"_defaultFontTight")];
NSLog(@" ok= %@", manager);
}
從該文件中,我得到了數據_defaultFontTight
中的NSLog就好了打印,但我正在掙扎是我該怎麼辦獲取實例功能?更具體地說,下面的所有內容都以-
符號開始。我只能從+
符號中獲得信息。
如果我是轉出_defaultFontTight
與enabled
然後我得到如下:
2017-07-02 18:09:35.382109-0400 Testing[809:96270] +[CCUINightShiftSectionController enabled]: unrecognized selector sent to class 0x1b7d5e420
任何幫助將不勝感激!
編輯:
我想下面這段代碼:
id myInstance =[NSClassFromString(@"CCUINightShiftSectionController") new];
[myInstance performSelector:NSSelectorFromString(@"enabled")];
對於一些框架,它得到的實例變量值成功地,而大部分只是返回null
或錯誤,如[core] "Error returned from daemon: Error Domain=com.apple.accounts Code=9 "(null)""
謝謝您的答覆,但粘貼代碼之後我得到的錯誤'/用戶/馬修/桌面/測試/測試/視圖控制器。 m:38:22:Objective-C指針隱式轉換爲'__strong id *'不允許使用ARC'和'指向非const類型'id'且沒有明確的所有權' – Matt
道歉,答案中的錯字,它是'id myInstance ...''不''' – CRD
好吧,現在第一行工作,但現在我不能得到第二行代碼。在頭文件代碼中有' - (BOOL)啓用;'和' - (id)_aggdKey;'例如,並使用'[myInstance _updateState];'返回'沒有已知的實例方法'enabled'' – Matt