【发布时间】:2012-08-11 17:37:52
【问题描述】:
我熟悉类主实现文件中的 Objective-C 类扩展,但对新的 Xcode 4.4“An Objective-C 类扩展头”文件模板的用途感到好奇?
【问题讨论】:
-
欢迎使用 StackOverflow 和第一个问题!
标签: objective-c xcode
我熟悉类主实现文件中的 Objective-C 类扩展,但对新的 Xcode 4.4“An Objective-C 类扩展头”文件模板的用途感到好奇?
【问题讨论】:
标签: objective-c xcode
类扩展必须在主 @implementation 块中实现,但声明可以在任何地方。
扩展用于向类接口添加您不想公开的内容,因此不能放入公共类声明头中。
在您熟悉的实现的同一文件中声明扩展名,用于仅由类实现本身使用的扩展名。
在单独的标头中声明扩展,这是模板的用途,在开发框架时很有用。扩展头不会成为公共头集的一部分,但会被多个框架的实现文件在内部使用。
您可以将其视为框架私有,而不是类私有。
【讨论】:
readonly,然后在内部将其提升到readwrite。传统类别明确不允许这样做。
另一个原因是类扩展头文件在你使用单元测试来测试你的类的情况下很有用,把类扩展放在一个单独的头文件允许您将包含私有方法的标头导入需要这些私有方法的类的实现以及用于测试该类的单元测试文件中 ...
在我看来,这是对 Objective-C 的一个很好的补充(在单元测试中测试私有方法的机会),这是目前 Java 中的 JUnit 无法做到的。
【讨论】: