objective-c-runtime

    0熱度

    1回答

    類的伊娃佈局被定義爲class_ro_t的結構uint8_t數組字段(看看http://opensource.apple.com/source/objc4/objc4-532.2/runtime/objc-runtime-new.h)。那麼,它如何被解釋呢?存儲在其中的數據的格式是什麼?

    3熱度

    2回答

    是否有宏可以在編譯時返回一個唯一字符串,以便它可以用作一個Objective-c類的名稱? 我在想是這樣的: #define my_macro(params) \ @implementation my_macro_function_giving_unique_string_(MyTrickyRuntimeExtension) \ //Do stuff \ @end \

    5熱度

    2回答

    這是Objective-C runtime programming guide摘錄: 當創建一個新的對象,內存爲它分配,並且它的實例變量初始化。對象的變量中的第一個是指向其類結構的指針。這個名爲isa的指針爲對象提供對其類的訪問權限,並通過該類訪問所有從它繼承的類。 ISA聲明中NSObject這樣的: Class isa; 在其反過來Class無非是一個指針更給結構 typedef stru

    0熱度

    2回答

    我想編寫一個工具,它可以在開發軟件時爲Objective-c類名,選擇器名和屬性名執行代碼完成。 (即可以定期運行並構建類名稱樹及其屬性/選擇器的東西)。 有沒有我可以使用的API? 。 。我正在研究鐺靜態分析器,但是由於在文檔上快速運行,似乎我需要更低級別的東西。

    0熱度

    2回答

    objective-c運行時是否允許從該方法本身內獲取觸發方法調用的消息的描述?例如,如果我有一個方法叫: - (Foobar)doMyStuff; 。 。是否有可能從該方法得到類似的東西: //This would return @"doMyStuff" NSString* selectorName = [foobar nameOfMessageThatTriggeredMyInvocatio

    2熱度

    1回答

    我正在經歷和更換@synthesized(個體)鎖定重量/該方法 void _ThreadsafeInit(Class theClassToInit, void *volatile *theVariableItLivesIn, void(^InitBlock)(void)) { //this is what super does :X struct objc_super my

    3熱度

    2回答

    查看Objective-C運行時系統源代碼,特別是在objc-exception.mm文件中,我發現了表達式「alt handler」和處理alt處理程序的函數。我不知道它是什麼,但根據文件註釋,如果運行時庫編譯時沒有alt處理程序支持,則只有zerocost實現,我也不知道它是什麼。 那麼,當我們談論Objective-C運行時庫時,什麼是alt處理程序和什麼是zerocost異常處理?

    3熱度

    2回答

    我需要在運行時通過反射調用動態地恢復方法名稱。但有些人會得到奇怪的結果。 我的TestClass包含的方法等: - (void)testMethod6_NSRect:(NSRect)a1 int:(int)a2 int:(int)a3 bool:(Boolean)a4 { ... } 當枚舉使用class_copyMethodList()以上的類的方法和通過method_getNa

    1熱度

    1回答

    我在http://opensource.apple.com/source/objc4/objc4-532.2/runtime/objc-exception.mm看到Apple的Objective-C運行時使用一些C++ ABI函數進行異常處理,如__cxa_throw,__cxa_begin_catch,__cxa_end_catch和__cxa_rethrow。由於Objective-C中的異常

    2熱度

    1回答

    隨着ARC的出現,一些新的功能可供開發人員使用弱引用的對象。 id objc_loadWeak(id *location)就是其中之一。這個函數接收一個參數,對應於存儲弱對象的內存中的一個位置,如果它仍然存在則返回該對象,或者如果它被釋放,則返回nil。 看來,當一個對象obj與id objc_storeWeak(id *location, id obj)存儲爲weak在一個位置location,