所有权。
第二个是在转换
C 指针类型时,增加引用计数的值。
第三个是把
Core Foundation 指针类型转换成 obj-c 指针,变把引用计数值
+1。如用 Core Foundation 方法创建一个对象,并且要用 arc 来管理对象的
内存,就可以用这个。
arc 移植的常见错误
1.强制转换 obj-c 指针位 C 指针(或者反过来转换)
2.在 arc 中把 void*指针强制转成 id 类型(或者反过来转),如果要转,就必
须是用修饰符
例如:
id selfPointer = (__bridge void *)self;
3.在结构体或者(union)集合体中是用 obj-c 对象
4.使用 NSAutoreleasePool
blocks 相关
1、替换 delegate
如果我们有 2 个 viewController,a 和 b,当我们从 a 界面 push 到 b 后,
在
b 上面触发了一些事件,这些时间又会影响到 a 界面上的内容。
上面是
2 个界面,当我们点击 b 界面的按钮 3 的时候,希望 a 界面上文字也相
应的改变了
如
一般情况下我们会用
delegate 来实现。
代理很强大,不过代理它是程序的事件逻辑也变的复杂了。
来看下用
block 怎么处理。
一个 block 语句的定义类似于 C 的函数,有返回值,有 0 到多个参数,接下来
属性声明,跟一般的属性声明差不多:
1 typedef void (^CallBack)(int index);
2
3 @property(nonatomic, copy)CallBack callBack;
然后在
b 里面触发按钮事件的时候调用 block,调用前最好先检查下是否为 nil
1 - (IBAction)click2:(id)sender
2 {
3 if(self.callBack)
4 self.callBack(2);
5 }
找软件资料,就到一览软件文库