类扩展,是 Objective-C 2.0 为分类(Category)添加的一个非常有用的功能。见以下示例代码:
-
@interface AppDelegate ()
-
-
- (NSURL *)applicationDocumentsDirectory;
-
- (void)saveContext;
-
-
@end
类扩展的声明方式和分类很像,区别只是括号内的分类名为空。
一个典型的类扩展的写法为:
-
@interface 类名 ()
-
// 定义合成属性或方法,但不能添加字段,故不能有那一对大括号
-
@end
这就是 Objective-C 中类的扩展,需要注意的是:
- 所谓的扩展,其实就是为一个类添加额外的原来没有的方法或者合成属性;
- 扩展中,只能扩展合成属性和方法,不能添加字段,否则会编译错误;
- 定义在 .m 文件中的扩展为私有的,定义在 .h 文件(头文件)中的扩展为公有的。类扩展是在 .m 文件中声明私有方法的非常好的方式。
- 类扩展中的声明的方法与在类中声明的方法是完全一致的,这些方法必须在随后的代码中实现,在编译时会被添加到类中,而分类是在运行时进行添加的。
阅读(7706) | 评论(0) | 转发(0) |