OC-4-弱语法、类方法

本文介绍了Objective-C中的弱语法,包括编译器不报错但运行时可能出现的问题,如保护成员变量的访问和未识别的选择器。接着详细讲解了类方法的基本概念、与对象方法的区别,以及self的用途和注意事项。在类方法中,self代表类本身,而在对象方法中,self则代表调用该方法的对象。
摘要由CSDN通过智能技术生成

---------- 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值