Objective-C 面向对象编程与内存管理详解
1. 消息传递机制
在 Objective-C 中,当一个对象接收到消息时,系统会递归地搜索该类的超类,直到找到具有正确名称的方法,或者搜索完所有可能的位置。若未找到匹配方法,Objective-C 运行时会抛出异常,通常会导致应用程序终止,但你也可以捕获并自行处理该异常。例如,Xcode 作为一个 Cocoa 应用程序,当出现异常时,它会显示错误消息,并允许用户忽略或终止程序。
这种机制使得对象在处理接收到的消息时能够实现一些有趣的操作。比如,你可以将一个方法调用打包成一个对象,将其存储在内存中并在稍后调用(这被称为调用);还可以编写自己的逻辑来处理对象接收到没有对应方法的消息的情况,这种情况在数据库代码中经常使用。
另外,Objective-C 有一个有用的特性:向 nil 发送消息不会执行任何操作,消息会被直接忽略,并返回零。这意味着在发送消息之前无需进行空检查,因为向 nil 发送消息不会引发异常。不过,这也可能导致一些令人沮丧的错误,例如由于你假设为有效对象引用的变量实际上为 nil ,从而导致某些功能无法正常工作。
由于 Objective-C 将方法名称和方法代码分离,因此它比大多数其他编译型语言更具动态性。Cocoa 的许多强大功能都源于这种动态编程方法。在日常工作中,方法和消息之间的区别并非至关重要,但你对 Objective-C 的工作原理以及 Cocoa 如何利用它了解得越多,就越有益。
2. 属性
在面向对象编程中,一个对象直接访问另一个对象的数据被认为
超级会员免费看
订阅专栏 解锁全文
2

被折叠的 条评论
为什么被折叠?



