我一直在查看Apple提供的示例代码,偶然发现了一些我从未了解过的有趣内容。在.m
文件的子类中,有多个部分使用@implementation
声明。最后一个是我期望的通常@implementation
- 所有代码所在的类实现,但是上面是几个简短的实现,每个实现定义一个方法。它们以这种格式声明:@implementation ClassName (Convenience)
。其中定义的方法与其他方法的格式相同,但它们以aapl_
为前缀。在每个@implementation
定义后,当然@end,
。调用这些方法的方法是创建ClassName
的实例,然后像使用标准API一样调用该方法:[anInstance aapl_thisInterestingMethod:aParameter];
因此,这似乎是一种在不创建类别的情况下向类添加方法的方法,您可以使用类的实例调用它,并且它仅特定于此文件。您可以使用self
来引用调用参数。
我的问题是:
aapl_
前缀只是为了表明这不是标准API的一部分,而是我们自己的方法吗?[self anInterestingMethod:myInstance
withParameter:aParameter];
编辑:这个问题完全没有与这个被标记为重复的问题有关... @interface不是@implementation