background image

iOS

       

中自动释放问题?

 

  

前言:

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);