我相信如果我能看到实现文件(.m文件),我可以学到一两件事。有什么办法可以查看NSString.m或NSNumber.m文件吗?和别的?如果我尝试使用聚光灯找到这些文件,我什么也得不到。
答案 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的文档吗?我发现它拥有我需要的一切。