iOS中自动释放问题?(3)
来源:未知 责任编辑:责任编辑 发表时间:2014-01-26 21:59 点击:次
-(void)saveData
{
//data读取内容
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"IMG_1340" ofType:@"PNG"];
NSData *data= [NSData dataWithContentsOfFile:imagePath];
//用path去保存data
[data writeToFile:path atomically:NO];
}例子3,点击button,程序会崩溃,提示“Thread 1:EXC_BAD_ACCESS(code =1, address = 0x0000008)” 。但如果将 path=[docstr stringByAppendingPathComponent:@"1.png"];改成path = [NSString stringWithString:[docstr stringByAppendingPathComponent:@"1.png"]];程序也行,不会崩溃。
--综上看来,“系统返回的自动释放对象”它的存在周期,在一个方法里是有效的(例子1/2),但离开了这个方法,在别的方法,别的地方就不能使用了(例子3),同时“自己创建的自动释放对”比“系统返回的自动释放对象”存在周期长点(例子3改动),但也不是总是存在,有时候用着用着就没了(曾经碰到过,一个自己创建的自动释放的数组,程序运行久了,有时崩溃,就是用着用着该数组没了)。
--总结,如果一个对象你要用,之前retain,用完了就release,这样能确保自动释放对象消息。(例子3中将 path=[docstr stringByAppendingPathComponent:@"1.png"]; 改为path = [NSString stringWithString:[docstr stringByAppendingPathComponent:@"1.png"]] 之后,程序正常运行)
相关新闻>>
- 发表评论
-
- 最新评论 进入详细评论页>>
今日头条
更多>>您可能感兴趣的文章
- 深入理解iPhone静态库(手把手教你iphone开发
- iphone-使用TextField及关闭键盘(useing TextField for in
- iphone开发基础三和c语言混编
- ios 关于UITableView UITableViewCellAccessoryCheckmark 混乱的
- (iOS-iap防护)验证用户付费收据,拒绝iap
- iOS文件存磁盘的设想
- iPhone开发 调用阿asp.net程序的webservice
- ios 时间定时器 NSTimer应用demo
- iPhone开发 文件的增加删除查询
- Cocoa Core Competencies 的Object creation 和IOS面试题示例
新闻点评
新闻关注排行榜
热门推荐
最新推荐