Objective-C学习笔记(十九)——对象方法和类方法的相互调用
2015-07-24 09:48
751 查看
其实在OC的对象方法(减号方法)和类方法(加号方法)并不是相互独立的,它们也可以发生千丝万缕的关系,今天我们来研究下它们两者相互调用的问题。该例子还是以People类为基础。
(一)对象方法调用类方法:
(1)先在People.h中分别声明两个方法:
(2)然后在People.m中分别实现两个方法,并在对象方法中调用类方法,调用方式也是用 “类名 方法名”进行。
(3)最后在main.m中调用对象方法:
(4)随后的输出结果如下,先输出对象方法中的内容,然后输出类方法中的内容,结果符合预期。类方法成功在对象方法中被调用。
。
(二)类方法调用对象方法
(1)先在People.h中分别声明两个方法:
(2)在People.m文件中实现两个方法,并在类方法中调用对象方法,注意是如何调用的。[People alloc]相当于实例化了一个对象,使用该对象调用show对象方法;
(3)最后在mian.m中调用类方法show2.
(4)输出结果如下,先输出类方法中的内容,再输出对象方法中的内容,符合我们的预期:
。
总之,减号方法和加号方法的相互调用使我们的代码更为灵活,编程更为方便。
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
(一)对象方法调用类方法:
(1)先在People.h中分别声明两个方法:
-(void)show; +(void)showw2;
(2)然后在People.m中分别实现两个方法,并在对象方法中调用类方法,调用方式也是用 “类名 方法名”进行。
-(void)show{ NSLog(@"我是一个对象方法,我被调用了!"); [People show2];//调用类方法 } +(void)show2{ NSLog(@"我是一个类方法,我被调用了!"); // [[People alloc] show]; }
(3)最后在main.m中调用对象方法:
People *people = [[People alloc] init];//注意没有在main.m中直接调用 [people show ];
(4)随后的输出结果如下,先输出对象方法中的内容,然后输出类方法中的内容,结果符合预期。类方法成功在对象方法中被调用。
。
(二)类方法调用对象方法
(1)先在People.h中分别声明两个方法:
-(void)show; +(void)showw2;
(2)在People.m文件中实现两个方法,并在类方法中调用对象方法,注意是如何调用的。[People alloc]相当于实例化了一个对象,使用该对象调用show对象方法;
-(void)show{ NSLog(@"我是一个对象方法,我被调用了!"); } +(void)show2{ NSLog(@"我是一个类方法,我被调用了!"); [[People alloc] show]; }
(3)最后在mian.m中调用类方法show2.
[People show2];
(4)输出结果如下,先输出类方法中的内容,再输出对象方法中的内容,符合我们的预期:
。
总之,减号方法和加号方法的相互调用使我们的代码更为灵活,编程更为方便。
github主页:https://github.com/chenyufeng1991 。欢迎大家访问!
相关文章推荐
- objective-c 用类别给类加属性以及原理
- aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file
- 如何将 AppDelegate's ManagedObjectContext 增加到自己创建的UIViewController
- Objective-C学习笔记(十八)——对象方法和类方法的声明,定义及调用
- Objective-C对象与Core Foundation对象
- Objective-C之KVC(键值编码)详解
- Objective-C中的instancetype和id区别
- Objective-C 学习笔记一
- object-c 利用rnntime机制归档任意对象
- MSSQL text/ntext 字段在读取时返回值不是String而是Object:net.sou
- MSSQL text/ntext 字段在读取时返回值不是String而是Object:net.sou
- Objective-C学习笔记(十七)——成员变量和属性详解
- objective-C 对象初始化/属性
- Objective-C学习笔记(十六)——成员变量
- Java学习之路0722(八)(object类、异常处理)
- 虚幻4如何通过C++创建UObject或者UClass
- OC学习笔记之分类
- Objective-C学习笔记(十五)——实例化对象
- Windows在结构objective C开发环境
- WaitForMultipleObjects()函数