蓝鸥iOS从零基础到精通就业-OC语言入门 对象内存管理3
2017-01-04 14:19
429 查看
iOS从零基础到精通就业 Objective-C
CSDN观看地址:http://edu.csdn.net/course/detail/3347
对象内存管理
CSDN观看地址:http://edu.csdn.net/course/detail/3347
对象内存管理
#import <Foundation/Foundation.h> #import "Car.h" #import "Person.h" int main(int argc, const char * argv[]) { Person *p = [[Person alloc] init]; Car *c1 = [[Car alloc] init]; [c1 setPrice:30000.0]; //把车给这个人 [p setCar:c1];//当人拥有这辆车的时候要进行引用计数+1 //人赚了钱了 Car *c2 = [[Car alloc] init]; [c2 setPrice:500000.0]; //换车 [p setCar:c2]; [c1 release]; [c2 release]; [p release];//当人死的时候要对他拥有的车引用计数-1 //copy //不可变数组 用不可变copy相当于retain //没有开辟新内存 只是引用计数增加了 叫浅拷贝 NSArray *array = [NSArray arrayWithObjects:@"张飞", nil]; NSArray *array1 = [array copy];//等同于retain NSLog(@"%p %p",array,array1); NSLog(@"%ld %ld",[array retainCount],[array1 retainCount]); //不可变数组 用可变copy //开辟新内存 叫深拷贝 NSArray *array2 = [NSArray arrayWithObjects:@"关云长", nil]; NSArray *array3 = [array2 mutableCopy]; //copy出来的结果是可变的还是不可变的?????? NSLog(@"--->>%@",[array3 class]); NSLog(@"%p %p",array2,array3); NSLog(@"%ld %ld",[array2 retainCount],[array3 retainCount]); //可变数组用不可变copy NSMutableArray *arr1 = [NSMutableArray arrayWithObjects:@"刘备", nil]; NSMutableArray *arr2 = [arr1 copy]; NSLog(@"%p %p",arr1,arr2); NSLog(@"%ld %ld",[arr1 retainCount],[arr2 retainCount]); //可变数组用可变copy NSMutableArray *arr3 = [NSMutableArray arrayWithObjects:@"刘备", nil]; NSMutableArray *arr4 = [arr1 mutableCopy]; NSLog(@"%p %p",arr3,arr4); NSLog(@"%ld %ld",[arr3 retainCount],[arr4 retainCount]); //ARC自动引用计数 不需要管理内存 通常用strong来代替retain return 0; }
相关文章推荐
- 蓝鸥iOS从零基础到精通就业-OC语言入门 对象内存管理1
- 蓝鸥iOS从零基础到精通就业-OC语言入门 对象内存管理2
- 蓝鸥iOS从零基础到精通就业-OC语言入门 对象内存管理4
- 蓝鸥iOS从零基础到精通就业-OC语言入门 1和对象一2
- 蓝鸥iOS从零基础到精通就业-OC语言入门 1和对象一1
- 蓝鸥iOS从零基础到精通就业-OC语言入门 1和对象一4
- 蓝鸥iOS从零基础到精通就业-OC语言入门 1和对象一5
- 蓝鸥iOS从零基础到精通就业-OC语言入门 1和对象一3
- 蓝鸥iOS从零基础到精通就业-OC语言入门 字符串2
- 蓝鸥iOS从零基础到精通就业-OC语言入门 2继承和初始化方法2
- 蓝鸥iOS从零基础到精通就业-OC语言入门 类目和延展2
- 蓝鸥iOS从零基础到精通就业-OC语言入门 2继承和初始化方法4
- 蓝鸥iOS从零基础到精通就业-OC语言入门 属性2
- 蓝鸥iOS从零基础到精通就业-OC语言入门 通讯录3
- 蓝鸥iOS从零基础到精通就业-OC语言入门 2继承和初始化方法1
- 蓝鸥iOS从零基础到精通就业-OC语言入门 数组
- 蓝鸥iOS从零基础到精通就业-OC语言入门 属性3
- 蓝鸥iOS从零基础到精通就业-OC语言入门 2继承和初始化方法3
- 蓝鸥iOS从零基础到精通就业-OC语言入门 字典
- 蓝鸥iOS从零基础到精通就业-OC语言入门 通讯录2