我相信如果我能看到实现文件(.m文件),我可以学到一两件事.有什么办法可以查看NSString.m或NSNumber.m文件吗?和别的?如果我尝试使用聚光灯找到这些文件,我什么也得不到.
不,大多数(全部?)Cocoa库实现仅以编译的二进制形式分发.你可以拆解它们,但这可能是针对Mac OS X EULA的,它也无法帮助你理解它们.
您可以看看Cocotron,它是Cocoa的开源实现.它不会完全相同,但至少对于核心类,它几乎是相同的.
许多基本的可可类,如NSString和NSNumber,都是在核心基础上实现的,并且是对Objective-c类的"免费桥接".核心基础是一个C(不是ObjC)API,源代码可以作为Darwin开源项目的一部分.
因此,要了解NSString或NSNumber是如何实现的,请按照上面的链接分别查看CFString和CFNumber(您需要一个Apple开发人员帐户,但注册是免费的).