OC 内存管理
OC 内存管理
OC 的内存管理是通过引用计数的机制实现。每一个OC对象都有一个retainCount的无符号整数属性,当对象被创建时,retainCount为1;当对象被变量持有时,retainCount加1;当变量不再持有对象时,retainCount减1;在retainCount为0时,对象被销毁。
MRC
手动管理引用计数和内存,需要手动在代码的相应地方添加内存管理的代码。
手动内存管理的原则 :
1、自己生成的对象,自己持有
2、不是自己生成的对象也可以持有
3、不需要自己持有的对象时,释放
4、不是自己持有的对象,不可以释放
ARC
ARC 是苹果引入的一种自动内存管理机制,会根据引用计数自动监视对象的生存周期,实现方式是在编译...
OC Block
Block (代码块)
Block是iOS 4 引入的C语言扩展功能,实质上是带有自动变量(局部变量)的匿名函数。
如下,函数的定义是必须有名字的,函数可以通过函数指针来传递和调用;Block的定义不需要名字,但是需要赋给Block变量才可以使用
/**
*
* 函数的定义必须是有名字的
**/
int func(int count)
{
printf("%d",count);
return count;
}
int (*funcpter)(int) = &func;
(*funcpter)(10);
/**
*
* block的定义不需要名字,然后赋给一个block变量
**/
int (^testBlock...
18 post articles, 3 pages.