博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oc58--Category注意事项
阅读量:7126 次
发布时间:2019-06-28

本文共 1313 字,大约阅读时间需要 4 分钟。

////  main.m//  Category注意事项#import 
#import "Person+NJ.h"int main(int argc, const char * argv[]) { Person *p = [Person new];// p.height = 1.75; [p say]; return 0;}
////  Person.h#import 
@interface Person : NSObject{ double _weight;}@property (nonatomic, assign) int age;- (void)say;@end
////  Person.m#import "Person.h"@implementation Person-(void)say{    NSLog(@"age = %i", _age);}@end
////  Person+MJ.h#import "Person.h"@interface Person (MJ)@end
////  Person+MJ.m#import "Person+MJ.h"@implementation Person (MJ)// 5.如果多个分类中都有和原有类中同名的方法, 那么调用该方法的时候执行谁由编译器决定,会执行最后一个参与编译的分类中的方法-(void)say{    NSLog(@"%s", __func__);}@end
//  Person+NJ.h#import "Person.h"// 1.分类是用于给原有类添加方法的, 它只能添加方法, 不能添加属性(成员变量)@interface Person (NJ)//{//    double _height;//}// 2.分类中的@property, 只会生成setter/getter方法的声明, 不会生成实现以及私有的成员变量,所以下面写的不会报错,但是也不能添加属性。//@property (nonatomic, assign) double height;- (void) hello;/* 方法的调用顺序: 1.分类 2.本类 3.父类 */@end
//  Person+NJ.m#import "Person+NJ.h"@implementation Person (NJ)- (void)hello{    // 3.可以在分类中访问原有类中.h中的属性    NSLog(@"hello %f", _weight);}// 4.注意: 如果分类中有和原有类同名的方法, 会调用分类中的方法,也就是说会忽略原有类的方法// 注意: 在开发中尽量不要这样写,原有的就废了。-(void)say{    NSLog(@"%s", __func__);}@end

 

本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/7436161.html,如需转载请自行联系原作者
你可能感兴趣的文章
java知识整理
查看>>
github pages 添加godaddy的dns解析
查看>>
转 微服务的4个设计原则和19个解决方案
查看>>
黑马程序员java笔记之八-----反射Class
查看>>
adobe flash player 安装失败
查看>>
图论--拓扑排序模板
查看>>
LeetCode10 Indexed tree
查看>>
c# webbrowser.documentstream保存html文件 解决gb2312编码 存下后出现乱码的问题
查看>>
Oracle数据控制语言(DCL)
查看>>
linux 磁盘io监控
查看>>
Java中instanceof关键字的用法
查看>>
单链表的创建,插入,删除等操作——精简版
查看>>
PHP访问Oracle数据库
查看>>
Jmeter 线程之间传递变量
查看>>
Python内置函数清单
查看>>
Learning Entity Framework(1)
查看>>
Learning EntityFramework(3)
查看>>
bzoj 3028 食物——生成函数
查看>>
MongoDB资料汇总
查看>>
写给运维兄弟
查看>>