共14条回复
楼长
·
tinyfool
回复于 2013年09月10日
用英语词汇吧,我都不知道你说啥
2楼
·
3楼
·
tinyfool
回复于 2013年09月10日
楼上,我的名字都写不对么?
如果这个翻译对的话,楼主就问了一个毫无意义的问题,在什么情况下,你需要区分block和delegation protocol?这两个有啥可区分的?完全不同啊?
我很奇怪你问问题的方式,我们不应该先弄明白一个东西是什么,然后谈怎么跟别的东西区分么?具体到这两个东西,只要有点明白,就区分开了,因为完全没有关系啊。
4楼
·
Lithium
回复于 2013年09月10日
擦... 一手抖,把高超的英语水平泄露了!
5楼
·
ibuick
回复于 2013年09月10日
block delegate-protocol 根本就没啥关系啊,,,,
7楼
·
8楼
·
cheng.seatt
回复于 2013年09月10日
为什么要把技术搞得这么复杂......
9楼
·
vikiliu0310
回复于 2013年09月10日
不明觉历啊~~
10楼
·
Lithium
回复于 2013年09月10日
我其实之前写过类似思路的东西,所以搬过来。
调了一整天关于block的bug,终于窥探到了一些GCD, Block,ARC的关系,简单来说,为了iOS的用户界面更加流畅,苹果推出了更加底层的GCD,GCD是更加底层的C级别接口,为了实现回调,且为了与Obj-C代码更加兼容,自然也提出了类似于C语言函数指针而非函数指针的Block,但是gcd线程结束的不确定性,使block在异步调用时内存管理逻辑会非常复杂,从这个角度来说,苹果又为clang编译器推出了ARC,让编译器帮助你管理各种release;另一方面,也降低了很多初学者的学习成本与门槛,一箭N雕。
你去看看12年还是11年的WWDC有一个session介绍ARC的,当时在讲block编程的时候就演示了一个例子,说明block的内存管理有时候会异常复杂,犯错的概率也非常高。所以我的结论是,用block,就用ARC。
本帖有14个回复,因为您没有注册或者登录本站,所以只能看到本帖的10条回复。如果想看到全部回复,请注册或者登录本站。