Objective c 了解预定义方法的工作原理

Objective c 了解预定义方法的工作原理,objective-c,methods,Objective C,Methods,我是Objective-C的新手,我试图了解预定义方法是如何工作的。我浏览了XCode的文档和定义该方法的*.h文件。然而,我渴望阅读*.m文件或任何其他可以帮助我理解该方法如何工作的文档 例如-isEqualToString:(NSString*)检查两个字符串(类型为NSString)是否相等。我对这个描述不满意。我很想看看这个方法内部是如何工作的,或者它遵循的算法是什么。我在哪里可以找到这些信息 谢谢你的帮助 isEqualToString:(NSString*)是在NSString类中

我是Objective-C的新手,我试图了解预定义方法是如何工作的。我浏览了XCode的文档和定义该方法的*.h文件。然而,我渴望阅读*.m文件或任何其他可以帮助我理解该方法如何工作的文档

例如-
isEqualToString:(NSString*)
检查两个字符串(类型为NSString)是否相等。我对这个描述不满意。我很想看看这个方法内部是如何工作的,或者它遵循的算法是什么。我在哪里可以找到这些信息

谢谢你的帮助

  • isEqualToString:(NSString*)是在NSString类中定义的方法。苹果为您提供了框架,但他们没有提供这些方法的实现。因此,您无法看到标准框架库背后的源代码

编辑:您可以创建一个二进制文件并使用此应用程序检查汇编代码:

不幸的是,苹果框架的许多实现(
.m
)文件没有公开提供。你有两个选择:

  • 正如Matthias在评论中所建议的,使用调试器并检查为该方法生成的汇编代码
  • 浏览该项目的存储库,该项目与Apple类有一些等价物

  • 您可以使用调试器,在那里您可以在汇编程序级别观察该方法。如果我敢评论(/rant,但希望礼貌):如果您对描述不满意,那么您将无法在封闭源代码的面向对象环境中继续工作。文档没有指定使用的算法,因为它不打算将自身绑定到算法。这些方法可以在任何版本的操作系统中随时更改,而无需事先或事后通知。对象是独立的,事后猜测它们存储和处理数据的方式没有效率,通常甚至不可靠。