论坛首页 移动开发技术论坛

【转】Blocks编程要点[中文完整翻译版]- Blocks Programming Topics

浏览 2964 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-12-21  
iOS

觉得不错,故转载一下,喜欢的就下载吧

---------------------------------------------------

Blocks编程要点

原著:Apple Inc. 

翻译:謝業蘭 

联系:xyl.layne@gmail.com 

鸣谢:有米移动广告平台 

             CocoaChina 社区


译名:Blocks编程要点
原文:Blocks Programming Topics
链接:

http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/Articles/00_Introduction.html#//apple_ref/doc/uid/TP40007502-CH1-SW1

文档下载:

http://vdisk.weibo.com/s/1Bi9K

 

【翻译缘由—翻译本身也是强化学习的过程】
之前一直在CocoaChina上面潜水,虽然做iOS开发也快2年了,但是总觉得缺少了点什么。以前查看英文API文档,有些细节总是记不住,每次看完之后也没什么印象。忽然有一天有人向我抱怨说查看官方英文API文档太痛苦了,然后我就想如果我把一些常用的官方文档翻译为中文的话,或许可以帮助这批需要帮助的人,然后偶就心血来潮,开始了自娱自乐的翻译之旅。帮助别人的同时,自己也获得快乐。

Block是iOS 4.0之后添加的新特性支持。本人亲测感觉使用Block最大的便利就是简化的回调过程。以前使用UIView的动画,进程要控制动画结束后进行相应的处理。iOS 4.0之后,UIView新增了对Block的支持,现在只要使用简单的一个Block代码就可以在写动画的代码部分直接添加动画结束后的操作。还有就是在使用Notification 时候Block也非常有帮助。反正多用就可以体会到Block的优美了。
对了,使用Block要谨记别造成对象互相引用对方导致引用计数进入一个循环导致对象无法被释放。iOS 5.0之后的ARC也是无法解决该潜在的互相引用的问题的。所以写Block的时候要注意这点。因为Block往往在后台自动对一些它引用了的对象进行retain操作。具体形式这里就不距离了,大家在使用的时候多体会一下。

本文在翻译过程中发现很多地方直译成中文比较晦涩,所以采用了意译的方式,这不可避免的造成有一些地方可能和原文有一定的出入,所以如果你阅读的时候发现有任何的错误都可以给我发邮件:xyl.layne@gmail.com

大家也可以关注我微博一起沟通交流学习。
微博地址: http://weibo.com/u/1826448972

最后希望这篇文档能帮上那些感觉看官方英文文档困难的人。如果可以我还是推荐尽量查看英文原文档,毕竟那是原汁原味,翻译总无法避免有一定的疏漏。

其实之前没有打算要翻译该文档的,只是中间自己学习到Block用法,心想干脆就一边学习一边翻译好了。或许大家对Blocks不太熟悉,如果你原本没有用过block的话,那可以看看本文档,你会发现其实block很好用。

下期预告:Instruments用户指南

因为翻译的时候写在word里面,格式太多,图片上传麻烦,所以干脆直接转换为PDF提供给大家下载。

以下提供目录预览:

目录

简介
本文档结构
第一章    BLOCKS入门
1.1    声明和使用一个BLOCK
1.2    直接使用BLOCK
1.3    COCOA的BLOCKS
1.4    __BLOCK变量
第二章    概念概述
2.1    BLOCK功能
2.2    用处
第三章    声明和创建BLOCKS
3.1    声明一个BLOCK的引用
3.2    创建一个BLOCK
3.3    全局BLOCKS
第四章    BLOCKS和变量
4.1    变量类型
4.2    __BLOCK存储类型
4.3    对象(OBJECT)和BLOCK变量
4.3.1    Objective-C对象
4.3.2    C++对象
4.3.3    Blocks
第五章    使用BLOCKS
5.1    调用一个BLOCK
5.2    使用BLOCK作为函数的参数
5.3    使用BLOCK作为方法的参数
5.4    拷贝BLOCKS
5.5    需要避免的模式
5.6    调试
结束语
推荐资源


转载自:http://www.cocoachina.com/bbs/read.php?tid=87593
转载此文请注明:http://dev.youmi.net/2011/12/blocks-programming-topics.html
 更多iOS开发者资料:http://dev.youmi.net/2011/12/threading-programming-guide.html
论坛首页 移动开发技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics