OC-4-弱语法、类方法

来源:互联网 发布:im软件是什么 编辑:程序博客网 时间:2024/04/29 18:22

---------- CornerFly真诚期待与您交流! ----------

 一、OC的弱语法


1、概述

OC的编译器不报错,但是运行的时候,出现报错或者闪退,这就是OC的弱语法。

2、常见错误

1>error : instance variable “wheel” is protected.

*默认情况下,成员变量是被保护的,可以在定义成员变量前加上@protected ,不过一般尽量不要使用。还可以给成员变量”wheel”设置set和get方法来访问成员变量。

2>unrecognized selector sent to instance.

*给成员变量发送了一个不能识别的消息,也就是成员变量调用了一个不能识别的方法。

3、代码示例

#import@interface Person : NSObject- (void)test;@end@implementation Person- (void)test{NSLog(@"哈哈");}@end// 闪退:一旦运行过程中出错就会闪退int main(){Person *p = [Person new];// OC在运行过程中才会检测对象有没有实现相应的方法,编译不会检测[p test];return 0;}


二、类方法

 

1.基本概念

直接可以用类名来执行的方法(类本身会在内存中占据存储空间,里面有类\对象方法列表)。

 

三、类方法和对象方法的区别


1、对象方法

*以减号-开头

*只能让对象调用,没有对象,这个方法根本不可能被执行

*对象方法能访问实例变量(成员变量)

2、类方法

*以加号+开头

*只能用类名调用,对象不能调用

*类方法中不能访问实例变量(成员变量)

*使用场合:当不需要访问成员变量的时候,尽量用类方法

注意:类方法和对象方法可以同名


四、self


1、用途

1>指向了方向调用者,代表着当前对象。

2>可以利用“self –>成员变量名”访问当前对象内部的成员变量

3>[self 方法名]可以调用其他对象方法\类方法。

2、注意点

1>谁调用了当前方法,self就代表谁。

*self出现在对象方法中,self就代表对象

*self出现在类方法中,self就代表类

2>在对象方法利用“self ->成员变量名”访问当前对象内部的成员变量。

0 0
原创粉丝点击