一,7,0手动内存管理基本概念

一,7,0手动内存管理基本概念

创建对象 1.分配内存空间,存储对象 2.初始化成员变量 3.反回对象的指针地址

二 注意事项

1.对象在完成创建的同时,内部会自动创建一个引用计数器,这个计数器,是系统用来判断是否回收对象的唯一依据,当我们的引用计数retainCount = 0的时候,系统会毫不犹豫回收当前对象 //2.[对象 release] reatinCount - 1 //3.[对象 retain] reatinCount + 1 ,返回self //4.我们的引用计数retainCount = 0的 对象就被销毁了

//5.dealloc函数,当一个对象要被销毁的时候,系统会自动调用dealloc函数,通知对象你将要被销毁

//内存管理原则(配对原则):只要出现了 new,alloc,retain,就一定配对出现一个release,autorelease

三手动内存管理研究问题方法

.1野指针操作

(1)如果你确定当前作用于中的对象已经不会再被使用了,为了防止野指针操作,通常我们会把不在使用的指针变量赋值为nil

(2)避免野指针操作的方法 [nil resele]

(3)野指针操作,当一个对象retainCount已经为0 时,调用retain方法,是不会使得对象起死回生的,同时还会发生野指针操作异常

2内存泄漏;

(1)内存泄漏指的就是,不再被使用的对象,一直在内存中没有被销毁

四,@property参数

1.生产get与set方法的声明2.生成get与set方法的简单实现

3.若果你没有声成名相对象的成员变量,那么他会自动生成一个_开头的成员变量

@property 参数分为4类

1.与set方法内存管理相关参数retain: 要生成符合内存管理原则的set方法(应用与对象类型)assign: 直接赋值,(对象类型,基本数据类型)copy : (后面讲解)

2.多线程相关//nonatomic: 不生成多线程线管代码,使用这个就可以了(效率高一点)//atomic:生成多线程线管代码(不写默认是这种方式)//实际开发中,只要是对象类型的@property都写成下面

2.多线程相关//nonatomic: 不生成多线程线管代码,使用这个就可以了(禁止多线程,变量保护,提高性能。效率高一点)//atomic:生成多线程线管代码(不写默认是这种方式)(atomic提供多线程安全,是描述该变量是否支持多线程的同步访问,如果选择了atomic 那么就是说,系统会自动的创建lock锁,锁定变量)//实际开发中,只要是对象类型的@property都写成下面

4.set与get方法名称相关的参数//setter:设置生成的set方法名称//getter:设置生成的get方法名称

改变set与get方法名称很多都是用在BOOL类型的变量

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值