【发布时间】:2013-12-14 11:22:18
【问题描述】:
当使用手动内存管理时,我们可以编写对未在类中声明的方法的调用。在这种情况下,我们在编译期间得到的只是警告。这是 Wikipedia 对 Objective-C 最独特的特性之一的陈述:
面向对象编程的 Objective-C 模型基于向对象实例传递消息。在 Objective-C 中,不是简单地调用一个方法;而是调用一个方法。一个发送消息。这与 C++ 使用的 Simula 风格的编程模型不同。这两个概念的区别在于方法或消息名称所引用的代码是如何执行的。在 Simula 风格的语言中,方法名称在大多数情况下由编译器绑定到目标类中的一段代码。在 Smalltalk 和 Objective-C 中,消息的目标是在运行时解析的,接收对象自己解释消息
那么为什么在 ARC 中出现编译错误?破坏该语言如此强大功能的原因是什么?我不知道有什么如此重要?有人可以解释一下吗?谢谢
【问题讨论】:
-
涉及到 NSSelectorFromString 吗?请分享触发错误的代码!
-
不,您可以使用 NSSelectorFromString 来逃避错误,但我不是在问如何逃避它,而是在问为什么这样做。共享代码的内容然后尝试在 ARC 下调用任何未声明的方法,您就会明白我在说什么
标签: objective-c automatic-ref-counting