注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

水木的博客

唱好人生中的每一场戏

 
 
 

日志

 
 

解析:Program received signal: “EXC_BAD_ACCESS"  

2012-11-15 00:24:01|  分类: Iphone&Ipad开发 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在练习时,有这么段代码:
    CALayer *sublayer = [CALayer layer];
    sublayer.backgroundColor = [UIColor blueColor].CGColor;
    sublayer.shadowOffset = CGSizeMake(0, 3);
    sublayer.shadowRadius = 5.0;
    sublayer.shadowColor = [UIColor blackColor].CGColor;
    sublayer.shadowOpacity = 0.8;
    sublayer.frame = CGRectMake(30, 30, 128, 192);
    [self.view.layer addSublayer:sublayer];
由于被书上的内存泄露吓唬住了,所以又在最后追加了[sublayer release];来释放内存而在程序调试运行退出时碰到了Program received signal: “EXC_BAD_ACCESS" 错误。经网络搜索搞清楚了这个错误产生的几个原因:

1、访问受保护或者不存在的内存空间,导致返回了一个错误的指针;

2、访问未进行内存分配或初始化的内存空间;

3、在对象被释放后仍然采用原来的指针进行访问;

4、采用了[object release]释放对象,但其实对象并未采用 alloc/copy/retain 等形式进行内存分配;(这是我此次错误的原因)


5、其他不合法的内存访问方式;
 
总之,对于常见的EXEC_BAD_ACCESS,EXC_BAD_INSTRUCTION,错误,一般都是因为访问已经被release的对象造成的。尤其是在一个线程中访问另外一个线程的autorelease库中的对象,尤其要注意此类问题
  评论这张
 
阅读(559)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017