background image

所有权。
第二个是在转换

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

3 @property(nonatomic, copy)CallBack callBack;
 
然后在

b 里面触发按钮事件的时候调用 block,调用前最好先检查下是否为 nil

  
 1 - (IBAction)click2:(id)sender
 2 {
 3     if(self.callBack)
 4         self.callBack(2);
 5 }

                   找软件资料,就到一览软件文库

http://wk.yl1001.com/rj/