在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
事实上在OC的对象方法(减号方法)和类方法(加号方法)并非相互独立的,它们也能够发生千丝万缕的关系,今天我们来研究下它们两者相互调用的问题。该样例还是以People类为基础。 (一)对象方法调用类方法: (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 。欢迎大家訪问! |
请发表评论