图书前言

传智播客和“黑马程序员”

江苏传智播客教育科技股份有限公司(简称传智播客)是一家专门致力于培养高素质软件开发人才的科技公司,“黑马程序员”是传智播客旗下的高端IT教育品牌。

“黑马程序员”的学员多为大学毕业后想从事IT行业,但各方面条件还不成熟的年轻人。“黑马程序员”的学员筛选制度非常严格,除包括严格的技术测试、自学能力测试外,还包括性格测试、压力测试、品德测试等。百里挑一的残酷筛选制度确保了学员质量,降低了企业的用人风险。

自“黑马程序员”成立以来,教学研发团队一直致力于打造精品课程资源,不断在产、学、研三个层面创新自己的执教理念与教学方针,并集中“黑马程序员”的优势力量,有针对性地出版了计算机系列教材五十多种,制作了教学视频数十套,发表各类技术文章数百篇。

“黑马程序员”不仅斥资研发IT系列教材,还为高校师生提供以下配套学习资源与服务。

为大学生提供的配套服务: 

1. 专注的辅助学习平台“博学谷”(http://yx.boxuegu.com),专业老师在线为学生答疑解惑。

2. 针对高校学生在学习过程中存在的压力等问题,我们还面向大学生量身打造了“播妞”。“播妞”不仅致力推行快乐学习,还会有定期的助学红包雨。读者可添加“播妞”微信/QQ: 208695827。

3. 高校学生也可扫描右方二维码,加入“播妞”粉丝团,获取最新学习资源,与“播妞”一起快乐学习。

为IT教师提供的配套服务: 

针对高校教学,“黑马程序员”为IT系列教材精心设计了“教案+授课资源+考试系统+题库+教学辅助案例”的系列教学资源,高校老师请关注码大牛老师微信/QQ: 2011168841,获取教材配套资源,也可以扫描右方二维码,加入专为IT教师打造的师资服务平台——“教学好助手”,获取“黑马程序员”最新教师教学辅助资源相关动态。

传智人

2017年1月

ObjectiveC,通常写作ObjC或OC,较少写作Objective C或ObjC,它在 C 语言的基础上进行扩充,是支持面向对象的一门语言。ObjectiveC的流行归功于iPhone的成功,它可以编写的应用程序如下:

 iOS操作系统

 iOS应用程序

 Mac OS X操作系统

 Mac OS X 上的应用程序

为什么写本书

2014年,我们出版了一本《ObjectiveC入门教程》,该书站在初学者的角度,以形象的比喻、实用的案例、通俗易懂的语言,详细讲解了ObjectiveC 语言,受到广大读者的一致好评。

本书作为《ObjectiveC入门教程》的升级版,秉承之前教材的优点,不仅对开发环境和开发工具有所更新,而且在知识内容上也有所更新:

 新增block代码块。作为ObjectiveC最新最强大的工具,本书通过对block代码块的定义和使用进行了详细讲解。block是苹果公司推荐的类型,效率高,可以帮助我们组织独立的代码段,并提高复用性和可读性。

 内存管理。通过MRC到ARC的转变过程,深刻帮助读者理解ObjectiveC的内存管理机制,轻松搞定任何与内存管理相关的问题。 

如何使用本书

本书以全新的OS X 10.11为平台,以Xcode 8.1为开发工具,全面介绍了ObjectiveC的基本知识。考虑到本书使用对象的不同,给予以下建议:

课堂教学,建议采用案例驱动的方式来讲授,让学生在动手完成“案例”的过程中,培养学生分析问题、解决问题的能力,使学生可以直观、深刻地学会ObjectiveC开发技能。

建议自主学习者勤思考、勤练习、勤检测。任何有疑惑的地方都可以向“问答精灵”咨询,每个知识点对应的案例都要独立完成,最后通过每章配套的习题进行自我检测。

本教材共有10章,具体内容如下。

 第1章首先介绍了ObjectiveC语言的特点、发展历史以及未来的趋势,然后讲解了开发环境的搭建,包括系统环境和开发工具,并带领大家开发一个ObjectiveC程序,对程序的代码及编译进行讲解,最后讲解帮助文档的使用。

 第2章讲解了ObjectiveC面向对象的概念,包括类和对象、类的设计与定义、对象的创建和访问、方法的使用等内容,帮助大家学会使用面向对象的编程思想编写简单的程序。除此之外,本章还介绍self、匿名对象和异常,并通过一个阶段案例,综合考查读者对项目需求的分析能力以及对面向对象基本知识的掌握程度。

前言ObjectiveC程序设计案例教程 第3章主要介绍面向对象的三大特征——封装、继承和多态,介绍访问修饰符的特点、里氏替换原则以及description方法的原理。通过本章的学习,希望读者能够理解并且掌握封装、继承和多态这三个特征,并且可以灵活运用,为后面的学习奠定扎实的基础。

 第4章主要介绍ObjectiveC的特有语法,包括点语法、@property、@synthesize和@property的增强使用,还介绍静态类型、动态类型和构造方法的内容。希望读者认真学习本章内容,仔细体会ObjectiveC特有语法的特点和用法。

 第5章主要介绍内存管理(MRC机制)的知识,包括引用计数器的概念、单个对象和多个对象的内存管理,以及@property参数的使用。大家应该掌握MRC内存管理的原理,便于更好地理解ARC机制的知识。

 第6章主要介绍内存管理(ARC机制)的知识,包括概念、单个对象的内存管理、@property参数、循环引用,以及ARC和MRC的相互兼容问题。大家应该掌握ARC内存管理的原理,及时管理好程序的内存。

 第7章主要讲解分类的相关知识,包括分类的简单实用、非正式协议和延展。希望读者在以后的学习中能够区分分类的不同使用情景,并灵活加以运用。

 第8章主要介绍block代码块,包括block语法、block的简化、block内部访问外部变量、block作为函数的参数和返回值。block代码块这个知识点不难,并且是iOS开发经常用到的知识点,希望读者好好学习并掌握。

 第9章主要讲解ObjectiveC中的协议,包括协议的声明、协议的遵守、协议的继承等。虽然协议的相关内容不多,但使用频率非常高,希望大家深刻理解协议的好处,并在后面的开发中灵活运用。

 第10章主要讲解Foundation框架中的常见对象及其这些对象的常见操作,包括字符串、数组、字典、文件操作、日期处理等相关对象。通过本章的学习,希望读者独立使用Foundation框架开发应用程序。

在学习过程中,读者一定要亲自实践案例中的代码。如果不能完全理解书中所讲的知识,读者可以登录博学谷平台,通过平台中的教学视频进行深入学习。学习完一个知识点后,要及时在博学谷平台上进行测试,以巩固学习内容。另外,如果读者在理解知识点的过程中遇到困难,建议不要纠结于某个小点,可以先往后学习,通常来讲,看到后面对知识点的讲解或者其他小节的内容后,前面看不懂的知识点一般就能理解了。如果读者在动手练习的过程中遇到问题,建议多思考,厘清思路,认真分析问题发生的原因,并在问题解决后多总结。

致谢

本教材的编写和整理工作由传智播客教育科技股份有限公司完成,主要参与人员有吕春林、高美云、王晓娟、刘传梅、尹桥印、潘星、薛蒙蒙、郑瑶瑶、齐瑞华、郭敬楠等,全体人员在近一年的编写过程中付出了很多辛勤的汗水,在此一并表示衷心的感谢。

意见反馈

尽管我们尽了最大的努力,但教材中难免会有不妥之处,欢迎各界专家和读者朋友来信、来函提出宝贵意见,我们将不胜感激。阅读本书时,如发现任何问题或有不认同之处,可以通过电子邮件(itcast_book@vip.sina.com)与我们取得联系。

黑马程序员

2017年5月于北京前言ObjectiveC程序设计案例教程