2013-10-05 90 views
0

我很想念一件简单的事 - 很清楚。当我添加一个客观的C类扩展时,它只会创建一个.h文件 - 我应该在哪里执行实现?类扩展的实现在哪里?

回答

3

类扩展完成它所说的;它扩展了一个类的声明。与类别不同,类扩展可以添加@property声明,当编译该类的@implementation时,声明将自动合成。

唯一的要求是在编译@implementation之前编辑所有类别扩展声明或编辑#import

I.e.该类的@implementation是扩展的执行。

+0

我还是有点困惑。说我扩展NSObject - 并添加一个属性someProperty - 然后我可以从任何NSObject中通过self.someArray导入扩展名初始化SomeArray? 如果我想要一个方法doSomethingToTheProperty - 我必须在导入扩展的每个实现中定义该方法吗?或者,或者,我可以使用扩展来添加属性,然后使用类别来对这些属性执行方法(假设我导入扩展名)。我可能会让事情变得更加混乱,然后他们就是.. – JoshDG

+1

@JoshDG因为你没有提供NSObject的实现,你不能使用类扩展来扩展它。你可以考虑一个子类作为替代。 – justin

+1

类扩展用于您实现将类的接口分成多个部分的类。它们对你没有实现的类没有用处。 –