内存管理机制 Thread 1:EXC_BAD_ACCESS(code=EXC_I386_GPFLT)错误

来源:互联网 发布:公共网络摄像头 编辑:程序博客网 时间:2024/06/11 01:49

转自:http://blog.csdn.net/lichang719/article/details/46619985

iOS5之后苹果公司引入了ARC机制,大大方便了iOS开发者对内存的管理机制。在iphone 4出世的时候为什么ios在512M的内存中可以运行很大的游戏,保持畅快流畅的状态。得益于ios非常好的内存处理机制。

      在我们现在创建项目的时候,默认会直接引入ARC机制,我们可以关闭ARC机制:在输入框中输入long点击搜索按钮,如图:技术分享

         接下来即可进行老版本的内存操作了。

在老版本中,内存操作采用了引用计数(retainCount)alloc retain(+1)release(-1)

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

使引入数+1,必须对应的-1,务必成对存在

ClassA *obj1 = [[ClassA alloc] init]; //retaincount = 1

ClassA *obj2 = obj1; //retaincount = 1

[obj2 retain]; //retaincount = 2

当引入计数变为0的时候,会自动调用系统的dealloc系统函数

-(void)dealloc

{

[super dealloc];//注意一定要调用父类函数

NSLog(@"对象被删除");

 }

野指针:

在开发中经常会遇到野指针,系统一般会提示为Thread 1:EXC_BAD_ACCESS(code=EXC_I386_GPFLT)错误。因为你访问了一块已经不属于你的内存。

但我们在开发中可能会发现系统并不会时时检测野指针,主要是为了提高编译效率,默认关闭了野指针检测机制,打开方法:技术分享技术分享 

在Enable Zombie Objects上点击对号,关闭即可。

注意:一般我们最好不要打开该机制,这样编译时的效率将大大降低。

内存泄露:

只要对象的retainCount !=0就会一直存在在内存中,不再被使用的对象,一直在内存中没有被销毁,则会造成内存泄露。

@property 参数

1.与set方法内存管理相关参数

retain:要生成符合内存管理原则的set方法(应用与对象类型)

assign:直接赋值(对象类型,基本数据类型)

capy

2多线程相关

nonatomic:不生成多线程代码。(一般都用这个,效率高)

atomic:生成多线程管理代码

3.是否要生成set跟get方法

readwrite:可读可写属性,同时生成set跟get方法

readonly:只读属性,只生成get方法

4.set与get方法名称相关的参数

setter:设置生成set方法的名称

getter:设置生成的get方法名称

实例:

@property(nonatomic,retain)Class *class;

@property(nonatomic,retain)NSString *name;

@property(nonatomic,assign)int age;

@property(nonatomic,assign,readonly)int age;

@property(nonatomic,assign,setter=abc:)int age;//注意有冒号

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淡奶油发过了怎么办 打好的蛋清有水怎么办 想戒烟却坚持不了怎么办 给淮山弄的很痒怎么办 淮山接触皮肤痒怎么办 洗山药后手很痒怎么办 公司老板跑路了怎么办 小工厂老板跑路怎么办 学生医保卡丢了怎么办 在私企年龄大了怎么办 百度网盘上传慢怎么办 百度云盘上传慢怎么办 手机qq打字闪退怎么办 苹果5s手机闪退怎么办 手机qq总是闪退怎么办 qq邮箱密码忘了怎么办 qq加不了群怎么办视频 孩子好几天不大便怎么办 宝宝7天没有大便怎么办 40天小孩不拉屎怎么办 40多天婴儿便秘怎么办 小孩拉绿色稀便怎么办 5岁好几天不拉屎怎么办 2个月宝宝不大便怎么办 两月宝宝不拉屎怎么办 好几天没大便了怎么办 初生婴儿便秘解不出大便怎么办 小孩大便拉不出来怎么办 新生儿3天没大便怎么办 新生儿5天没大便怎么办 小孩好几天不大便怎么办 婴儿10天不拉屎怎么办 3岁大便拉不出来怎么办 孩子大便拉不出来怎么办 4岁大便拉不出来怎么办 排位队友太坑怎么办 lol遇到坑b队友怎么办 被冷暴力分手后怎么办 孕早期半夜饿了怎么办 怀孕了月经还来怎么办 大米生虫子吃了怎么办