Objective-C内存管理学习
fswy
欲当大事,需是笃实。
展开
-
Objective-C内存管理学习之ARC规则
ARC规则不能使用retain/release/retainCount/autorelease不能使用NSAllocateObject/NSDeallocateObject须遵守内存管理的方法命名规则不要显示调用dealloc使用@autoreleasepool块代替NSAutoreleasePool不能使用区域(NSZone)对象型变量不能作为C语言结构体(struct/union)原创 2016-05-27 16:28:05 · 447 阅读 · 0 评论 -
Objective-C内存管理学习之所有权修饰符
Objective-C编程中为了处理对象,可将变量类型定义为id类型或各种对象类型。 所谓对象类型就是指向NSObject这样的Objective-C类的指针,例如“NSObject ”。id类型用于隐藏对象的类名部分,相当于C语言中常用的“void ”。 ARC有效时,id类型和对象类型同C语言其他类型不同,其类型上必须附加所有权修饰符。 所有权修饰符一共有4种:__strong修饰符_原创 2016-05-27 16:11:53 · 711 阅读 · 0 评论 -
Objective-C内存管理学习之autorelease
调用autorelease方法,可以使取得的对象存在,但自己不持有对象。autorelease提供这样的功能,使对象在超出指定的生成范围时能够自动并正确地释放(调用release方法)。autorelease的具体使用方法如下:生成并持有NSAutoreleasePool对象;调用已分配对象的autorelease实例方法;废弃NSAutoreleasePool对象。(自动调用release)原创 2016-05-27 10:11:57 · 414 阅读 · 0 评论 -
Objective-C内存管理学习之ARC
自动引用计数(ARC,Automatic Reference Counting)是指内存管理中对引用采取自动计数的计数。以下 摘自苹果的官方说明。 在Objective-C中采用Automatic Reference Counting(ARC)机制,让编译器来进行内存管理。在新一代Apple LLVM编译器中设置ARC为有效状态,就无需再次键入retain或者release代码,这在降低程序崩原创 2016-05-27 09:50:05 · 439 阅读 · 0 评论 -
Objective-C内存管理学习之__weak和__block
1、Blocks理解:Blocks可以访问局部变量,但是不能修改 如果修改局部变量,需要加__block __block int multiplier = 7; int (^myBlock)(int) = ^(int num) { multiplier ++;//这样就可以了 return num * multiplier; };2、如果局部转载 2016-05-26 09:58:28 · 518 阅读 · 0 评论 -
Objective-C内存管理学习之block
block是一种数据类型,封装代码 函数不能在方法内部或函数内部,但是block可以 定义block类型的变量的格式 返回值类型 (^ block变量名称)(形参列表);实现格式 ^ 返回值类型(形参列表){ 语句…… }; 定义一个无参无返回值的block类型的变量void (^ block) = ^{ NSLog(@"tesgBlock");}block();有原创 2016-05-18 17:02:53 · 402 阅读 · 0 评论 -
Objective-C内存管理学习之属性声明的属性与所有权修饰符的对应关系
ARC有效时,Objective-C类的属性也会发生变化、@property(nonatomic,strong)NSString *name;属性声明的属性与所有权修饰符的对应关系属性声明的属性 所有权修饰符assign __unsafe_unretained修饰符copy原创 2016-05-27 17:26:36 · 553 阅读 · 2 评论