0
我很想念一件简单的事 - 很清楚。当我添加一个客观的C类扩展时,它只会创建一个.h文件 - 我应该在哪里执行实现?类扩展的实现在哪里?
我很想念一件简单的事 - 很清楚。当我添加一个客观的C类扩展时,它只会创建一个.h文件 - 我应该在哪里执行实现?类扩展的实现在哪里?
类扩展完成它所说的;它扩展了一个类的声明。与类别不同,类扩展可以添加@property
声明,当编译该类的@implementation
时,声明将自动合成。
唯一的要求是在编译@implementation
之前编辑所有类别扩展声明或编辑#import
。
I.e.该类的@implementation
是扩展的执行。
我还是有点困惑。说我扩展NSObject - 并添加一个属性someProperty - 然后我可以从任何NSObject中通过self.someArray导入扩展名初始化SomeArray? 如果我想要一个方法doSomethingToTheProperty - 我必须在导入扩展的每个实现中定义该方法吗?或者,或者,我可以使用扩展来添加属性,然后使用类别来对这些属性执行方法(假设我导入扩展名)。我可能会让事情变得更加混乱,然后他们就是.. – JoshDG
@JoshDG因为你没有提供NSObject的实现,你不能使用类扩展来扩展它。你可以考虑一个子类作为替代。 – justin
类扩展用于您实现将类的接口分成多个部分的类。它们对你没有实现的类没有用处。 –