我相信如果我能看到執行文件(.m文件),我可以學習一兩件事。有什麼辦法可以查看NSString.m或NSNumber.m文件嗎?和別的?如果我試圖用聚光燈找到這些文件,我什麼也得不到。Cocoa/Objective-C - 我可以以某種方式查看實現文件嗎?
4
A
回答
7
不,大多數(所有?)的Cocoa庫實現只能以編譯的二進制形式分發。你可以對它們進行反彙編,但這可能違反了Mac OS X EULA,它也不會幫助你理解它們。
你可以看看Cocotron,它是Cocoa的一個開源實現。它不會完全一樣,但至少對於核心類來說,它將幾乎完全相同。
1
我猜他們已經編譯成庫。
我只是在我的Mac上做了一個快速檢查,並找不到NSString.m文件。你在使用Xcode的文檔嗎?我發現它擁有我需要的所有東西。
2
也值得看看mySTEP sources。
This幫我做了一些事情,前段時間分類了NSMatrix。
6
許多基本的可可類,如NSString和NSNumber,都是在覈心基礎上實現的,並且可以通過「免費橋接」到Objective-C類。核心基礎是一個C(而不是ObjC)API,source作爲達爾文開源項目的一部分提供。因此,要了解NSString或NSNumber如何在底層實現,請按照上面的鏈接分別查看CFString和CFNumber(您需要一個Apple開發人員帳戶,但註冊是免費的)。
相關問題
- 1. 可以以某種方式查看FluentNHibernate自動映射嗎?
- 2. 可以以某種方式查看AMQ主題的內容嗎?
- 3. 我可以以某種方式更改郵件發件人嗎?
- 4. 我可以以某種方式查詢peewee/postgres中的所有現有表嗎?
- 5. 我可以移動beaker.SessionMiddleware以某種方式處理方法嗎?
- 6. IIS或asp.net/mvc可以以某種方式實現此目的嗎?
- 7. 我可以以某種方式靜音/取消靜音UIWebview嗎?
- 8. 我可以用這種方式實現HttpSessionListener嗎?
- 9. ASP.NET:我可以以某種方式更改由NumericPagerField呈現的HTML嗎?
- 10. 我可以以某種方式使用Web上的plink進行SSH檢查嗎?
- 11. 我可以以某種方式組合這兩個jQuery事件嗎?
- 12. 我可以以某種方式組合這兩個網頁控件嗎?
- 13. 我可以以某種方式存儲一個塊供以後使用嗎?
- 14. 我能以某種方式部分實現一類單類泛型嗎?
- 15. cout可以以某種方式改變變量嗎?
- 16. Drawable可以以某種方式用作着色器嗎?
- 17. 可以以某種方式公開模板模板參數嗎?
- 18. 可以將HLSL以某種方式放入.lib中嗎?
- 19. 我可以以某種方式在我的<VirtualHost>
- 20. 我可以使用變量以某種方式與.on Jquery
- 21. 寬div - 我可以以某種方式擺脫滾動條?
- 22. 我可以以某種方式構建webassembly代碼*而不使用emscripten「glue」嗎?
- 23. 我可以以某種方式訪問QTableView的子類中的d_func()嗎?
- 24. JSF2我可以通過FacesContext以某種方式訪問selectOneMenu值嗎?
- 25. 我可以以某種方式在Django ManyToMany字段中使用to_field參數嗎?
- 26. 我可以以某種方式選擇.htaccess中的環境變量嗎?
- 27. 我可以以某種方式暫時禁用WPF數據綁定更改嗎?
- 28. ConstraintLayout可以實現這種設計嗎?
- 29. ExtJS可以實現這種設計嗎?
- 30. ELF .so文件,我可以在我的windows上以某種方式運行它通過java嗎?