类别与委托协议的结合使用示例

在这段代码中,展示了如何通过类别NSObject类添加一个新的speak方法。类别名为menAdd,它是对Men类的扩展。在方法实现中,使用了NSLog来打印信息。

#import "Men.h"

@interface NSObject(menAdd) // 类别名 menAdd,扩展了 Men 类
-(void)speak;
@end

@implementation NSObject(menAdd)
-(void)speak {
    NSLog(@"我是NSObject类中以类别实现的speak方法");
}
@end

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSString *str = [[NSString alloc] init];
        [str speak];
    }
    return 0;
}

代码中的 speak 方法并没有在原类中声明,而是通过类别动态地添加了这个方法。在 main 函数中,我们创建了一个 NSString 实例,并调用了这个通过类别添加的 speak 方法。此种方式为开发者提供了灵活的扩展方法,而无需修改原始类的实现。

ppt 文件大小:221.5KB