来自 C++ 背景,让我对 Objective C 感到困惑的一件事是,您可以向类添加方法,而无需在类接口(interface)中实际指定它。所以我有很多问题:
- 为什么有人选择不在类接口(interface)中添加该方法?
- 仅仅是因为可见度吗?
- 接口(interface)中没有声明的方法是私有(private)的吗?
- 在类接口(interface)中声明方法只是可选的吗?
- 重写基类的方法有什么不同吗?
最佳答案
主要区别在于 C++ 在编译时设置大部分继承和类型,而 Objective C 主要在运行时设置。
在 Objective-C 中将方法放入接口(interface)(如果所有参数都是对象)中的唯一区别是编译器可以在编译时看到它并检查对象是否可以响应该方法 - 如果没有则您会收到警告,但编译确实成功,并且程序将运行并在运行时查找该方法。如果该方法位于类或类别(或其他方式)的实现中,那么运行时将找到它并成功调用它。
没有可以调用任何方法的私有(private)方法。
关于iphone - 向 Objective C 类接口(interface)添加方法是可选的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2462606/