我刚进入Objective-C(Java是我的主要OO语言)。为什么在接口中声明Objective-C实例变量?
定义对象的实例变量的接口,而不是类似乎有些奇怪。我习惯于一个接口是一个公共的API定义,除了方法签名之外没有任何东西(这里不包括常量)。
是有一些原因,状态接口中定义的(即使是私有的)和行为是在类中定义。看起来很奇怪,因为对象是状态+行为,所以定义会被分成两个独立的地方。
它是一个设计的好处是某种方式?在Objective-C中你只是被迫处理的后期问题中的痛苦?一个非问题,只是不同?关于为什么这样做的背景?
或者你可以把一个类的对象状态,我只是还没有打在我的书的部分呢?
imo,这是正确的答案,因为它实际上回答了这个问题:Why - kudos和一个赞成Jeremy – Rhubarb 2011-08-26 18:16:47
随着Objective-C 2.0,你不再需要在'@ interface'中声明_anything_。在.m文件中声明扩展中的私有方法和属性('@interface MyClassName()')。当然,您可以通过运行时找到这些方法和属性定义,但这与Java的大部分反射没有什么不同。 – 2013-11-22 05:49:33
该功能实施之前的答案日期。我已经添加了一个注释来说明这一点。 – JeremyP 2013-11-22 14:26:38