前言:
iOS 开发中关于对象的释放问题,虽然知道规则,但总不清楚自动释放的对象什么
时候彻底消失?它存在的多久?什么情况会消失?都不清楚,每次用自动释放对象,总有
点心虚的感觉,以下是一些例子、研究。
--直接上代码,代码写在一个控制器的 viewDidLoad 方法里(代码内容是用一个 path 就保
存一个
data,但 path 是自动释放对象):
1
//例子 1
2
NSArray*
patharray
=
NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory,
NSUserDomainMask, YES);
3
NSString*
docstr
=[patharray objectAtIndex:0];
4
//path 成员变量,文件路径-自动释放对象
5
path
=[docstr stringByAppendingPathComponent:@"1.png"];
6
//data 读取内容
7
NSString *
imagePath
= [[NSBundle mainBundle] pathForResource:@"IMG_1340"
ofType:@"PNG"];
8
NSData *
data
= [NSData dataWithContentsOfFile:imagePath];
9
//用 path 去保存 data
10
[data writeToFile:path atomically:NO];
11
//例子 2
12
NSArray*
patharray
=
NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory,
NSUserDomainMask, YES);
13
NSString*
docstr
=[patharray objectAtIndex:0];
14
//path 成员变量,文件路径-自动释放对象
15
path
=[docstr stringByAppendingPathComponent:@"1.png"];
16
//调用方法,path 做参数
17
[self saveData:path];
18
//分割线
19
-(void)saveData:(NSString *)filePath
20
{
21
//data 读取内容
22
NSString *
imagePath
= [[NSBundle mainBundle] pathForResource:@"IMG_1340"
ofType:@"PNG"];
23
NSData *
data
= [NSData dataWithContentsOfFile:imagePath];
24
//用 path 去保存 data
25
[data writeToFile:filePath atomically:NO];
26
}
27
//例子 3
28
NSArray*
patharray
=
NSSearchPathForDirectoriesInDomains
(NSDocumentDirectory,
NSUserDomainMask, YES);