--------------- FKApple.h ---------------
#import
<Foundation/Foundation.h>
#import "NSObject+Eatable.h"
@interface
FKApple :
NSObject
@end
--------------- FKApple.m ---------------
#import
"FKApple.h"
@implementation
FKApple
// 下面
这个方法的实现,要么写在
FKApple.m里,要么写在NSObject+Eatable.m里
- (void) taste
{
NSLog(@"苹果营养丰富,口味很好!");
}
@end
---------------
main.m
---------------
#import
<Foundation/Foundation.h>
#import "FKApple.h"
int main()
{
FKApple * app = [[ FKApple alloc ] init ];
[app taste ];
#import "FKApple.h"
int main()
{
FKApple * app = [[ FKApple alloc ] init ];
[app taste ];
}
--------------- NSObject+Eatable.h ---------------
#import
<Foundation/Foundation.h>
@interface NSObject (Eatable)
- ( void ) taste;
@interface NSObject (Eatable)
- ( void ) taste;
@end
一、编写本节代码的具体步骤:
1.可仿照第二章001节的代码编写步骤。
2.NSObject+Eatable.h文件需要另行创建。
二、本节代码涉及到的知识点:
1.所谓“协议”,是指多个类共同遵守的行为规范。
2.以NSObject类为基础,定义一个category,即形成一个“非正式协议”。
3.因为当其他类想要实现这个category的时候,就得实现该category下的所有方法。
4.对于遵守非正式协议的类而言,OC并不强制这些类去实现协议中的所有方法。
但如果category自己也没有实现自己的方法的情况下,程序在运行时就会出错。