Cocoa / Objective-C - 我可以以某种方式看到实现文件吗?

时间:2009-01-07 06:08:24

标签: objective-c cocoa

我相信如果我能看到实现文件(.m文件),我可以学到一两件事。有什么办法可以查看NSString.m或NSNumber.m文件吗?和别的?如果我尝试使用聚光灯找到这些文件,我什么也得不到。

4 个答案:

答案 0 :(得分:8)

不,大多数(全部?)Cocoa库实现仅以编译的二进制形式分发。你可以反汇编它们,但这可能是针对Mac OS X EULA的,它也无法帮助你理解它们。

你可以看看Cocotron,它是Cocoa的开源实现。它不会完全相同,但至少对于核心类,它几乎是相同的。

答案 1 :(得分:6)

许多基本的可可类,如NSString和NSNumber,都是在核心基础上实现的,并且是对Objective-c类的“免费桥接”。核心基础是C(非ObjC)API,source可作为Darwin开源项目的一部分。

因此,要了解NSString或NSNumber是如何实现的,请按照上面的链接分别查看CFString和CFNumber(您需要一个Apple开发者帐户,但注册是免费的)。

答案 2 :(得分:2)

另外值得一看mySTEP sources

This帮助我做了一段时间以前继承NSMatrix的事情。

答案 3 :(得分:1)

我猜他们已经编译成了库。

我刚刚对我的mac进行了快速检查,但也找不到NSString.m文件。你在使用Xcode的文档吗?我发现它拥有我需要的一切。