第一图书网

Objective-C初学者指南

[美] Gary Bennett,[美] Mitch Fisher,[美] Brad Lees 人民邮电出版社
出版时间:

2012-10  

出版社:

人民邮电出版社  

作者:

[美] Gary Bennett,[美] Mitch Fisher,[美] Brad Lees  

页数:

239  

译者:

王 雷  

Tag标签:

无  

前言

引  言过去三年里,我们听过无数次下面的话。“我从来没有编过程序,但是我有个很棒的想法可以做成iPhone/iPad应用。”“我真的能学会编写iPhone或者iPad程序吗?”我们的回答一直是:“你可以的,但是你必须有信心。”你只需要战胜自我。致新手本书假设你从来没编写过任何程序。它也适合从来没有用面向对象编程(Object-Oriented Programming,OOP)语言编过程序的人。市面上Objective-C的教程很多,但是所有这些书都假设你有编程经验并且理解OOP和计算机程序逻辑。我们想要写一本书,即使读者对程序设计、程序逻辑知之甚少或一无所知,读完之后也可以用Objective-C编程。毕竟,Objective-C是iPhone、iPad以及Mac的原生语言。过去三年里,我们在xcelMe.com培训过1000多名iPhone/iPad开发者。很多学生开发出一些很成功的iOS应用,它们在iTunes应用商店中是各自类别中的佼佼者。我们最初的两门课程是“面向对象编程逻辑入门”(Introduction to Objective-oriented Programming and Logic)以及“面向iPhone/iPad开发人员的Objective-C语言”(Objective-C for iPhone/iPad Developers),我们把这两门课程中讲授的东西写到了这本书里。致有经验的开发者很多开发者已经多年不做编程了,有些开发者仅使用非面向对象编程语言做过开发,这些人需要学习面向对象编程的概念和逻辑的背景知识,才能深入理解Objective-C。如果你是这类人,那么本书很适合你。我们会带你轻松了解OOP,以及它在iOS开发中的应用,助你成为成功的iOS开发者。为什么要用Alice(一个创新性的3D编程环境)过去这些年,各个大学的计算机系都面临这样一些困扰:男生比例偏高;辍学率偏高;毕业所需时间偏长。学习OOP语言(比如Java、C++或者Objective-C)最大的挑战之一就是它们一开始就让人感觉很难学。在过去,学生们要同时学习下面的课题:面向对象的原则;复杂的集成开发环境(IDE),比如Xcode、Eclipse或Visual Studio;编程语言的语法规则;编程逻辑和原理。为此,卡内基梅隆大学获得美国政府的拨款,研发了Alice。它是一个创新性的3D编程环境,让初学开发的人很容易就能创造出丰富的图形程序。Alice是一个教学工具,让学生在OOP环境中学习编程。这一软件使用3D图像和支持拖拽的界面,使初次编程的体验更具吸引力,而较少挫败感。Alice让学生集中学习OOP的原则,而不必同时再学复杂的IDE和Objetive-C的原理。学生可以把注意力集中在一个主题上,这样才能在学习过程中产生真正的成就感。既然是拖拽式的编程,Alice就免去了学习IDE和语言语法的复杂性。你会发现编程实际上很有趣,而且还可以用Alice开发出很酷很复杂的应用。介绍过OOP的课题,让读者熟悉这些概念之后,我们会开始讲解Xcode,有了它你可以应用刚学的OOP的知识编写Objective-C应用程序。这样一来,你就能集中精力学习Objective-C的语法和语言,而不用再同时学OOP了。不使用Alice学习Objective-C一千多名xcelMe.com的学员曾阅读过本书并成为成功的iOS开发者。每次课程结束,我们都会询问学员前四章中讲解Alice的章节是否有用。超过半数的学员认为在前四章的开头用Alice引入本章的内容对于他们的成功至关重要。但是,也有学生感觉他们不需要前四章开头的Alice示例。我们在编排本书前四章的时候,在每章的第一部分用Alice引入OOP的课题,而其余部分用Objetive-C讲述同一课题。因此,如果你对某一课题很熟悉的话,可以跳过Alice的段落。本书结构你会注意到本书处处都会让你体验成功。我们用Alice来介绍OOP及程序逻辑的概念,然后把它们引入Xcode和Objective-C。很多学生学东西喜欢看得见摸得着,这两种方式我们都会采用。我们讲述课题或者概念的时候,会提供图例,然后带你一步步地完成示例,以此来强化这些概念。我们经常在不同章节里重复一些课题,这是为了帮助你加强理解学过的技能,并以新的方式使用它们。这种方法使得初学编程的人可以多次应用学过的开发技能,在学习的过程中体会到成就感。因此,如果你感觉没有完全掌握一个课题,别担心,继续往下学!成功之道学习编程是与程序之间交互的过程。就如同学一种乐器一样,你需要不断练习。你必须完成本书所有的示例和习题。理解了概念并不意味着你知道如何应用。阅读本书你能了解很多,在完成本书习题的时候你也能体会到很多。但是只有当你调试程序的时候,你才真正能学到东西。花时间走查自己的代码,努力发现它为何不像你预想的那样工作,这个学习过程是不可替代的。调试的缺点是,开发新手可能觉得其过程非常令人沮丧。你甚至会有从未有过的冲动,想把电脑扔出窗外。你会质疑自己为什么要学这个,是不是自己还不够聪明,无法解决这个问题。编程让你变得谦卑,即使资深的开发人员也是如此。和音乐家一样,你练习得越多,你的技术就越强。我们说的练习就是编程。作为一个程序员,你可以做出很惊人的东西来,你可以掌控世界。能在iTunes应用商店看到自己的应用是最让人满足的一项成就了。但是,你要为此付出代价,代价就是为编码和学习付出的时间。我们教过1000多个学生,把他们培养成了iOS开发人员,我们总结出了一些确保学生成功的规律。下面就是我们的成功之道。要自信。只有你才会说自己不行,千万别这么做。把书中所有的示例和习题都做一遍。编码,编码,不断地编码。编得越多,能力越强。对自己有耐心。如果你之前是个幸运的优等生,只需读一下就能记住所有的东西,这对Objective-C编程可行不通。你必须花时间编码。你可以靠读这本书记住些东西,但是在调试代码的时候才真正学到东西。使用本章末尾提到的免费的xcelMe.com网络教程和YouTube视频。不要放弃!开发技术栈我们会带你理解iOS应用的开发全过程,以及你所需要的技术。但是,现在简单看看成品也很有帮助。图1是一个用列表视图呈现的iPhone应用示例。图1 iPhone/iPad技术栈需要的软件、资料和设备Alice的一个优越之处就是它在现今的三个主要的操作系统上都能用:WindowsMacLinuxAlice另一个优越之处是它是免费的。1. 操作系统和IDE尽管你可以在多种平台上使用Alice,开发人员开发iOS应用的集成开发环境(IDE)是Xcode。你必须在一台基于Intel芯片的Mac上使用Xcode和提交应用。Xcode也是免费的,在Mac应用商店上找得到。2. 软件开发包你还需要注册成为iOS开发者。当你决定上传应用到iTunes应用商店的时候,必须支付每年99美元的费用。3. 双显示器我们推荐开发人员给电脑连上两个显示器。这样你可以在一边单步执行代码,在另一边查看输出窗口和iPad模拟器,乐何如之!这在Apple的机器上很容易配置。你只要使用正确的Mini DisplayPort适配器,把第二台显示器插在任何基于Intel的Mac的显示端口上,就拥有了独立工作的两台显示器,见图2。请注意双显示器不是必需的,如果没有双显示器,你就要在一个屏幕上好好组织打开的窗口了。图2 双显示器4. 免费的在线研讨会、Q&A以及YouTube视频几乎每个周三晚上7:30(太平洋夏令时),我们都有在线研讨会,讨论书中的一个课题,或者时下的一个技术热点。这些在线研讨会是免费的。研讨会结尾,我们会安排Q& A环节。你可以就研讨会上讨论的话题或者书中任何课题提问。除此之外,我们所有的研讨会都会录制下来放在YouTube上,如图3所示。图3 免费Objective-C研讨会和YouTube视频请订阅该YouTube频道,以便收到新录像的上传通知。5. 本书免费论坛我们为本书开发了一个在线论坛。在这里你可以就学习Objective-C过程中遇到的问题提问,本书的作者会作答。在此你也能找到习题的答案,以及有助于学习的更多练习。这里也提供了习题详解以及一些有用的链接。这些链接可以帮助你成长为一个成功的iPhone/iPad开发者,创造出一流的应用程序,见图4。现在让我们开始吧!

内容概要

  苹果移动应用开发成为热点,越来越多的人投身其中,其中不乏从未涉及软件行业的菜鸟级人士。他们也能学会编写iPhone或iPad程序吗?也能做出App应用吗?答案是肯定的。本书就是针对这类人编写的。
  本书汇编自xcelMe.com网站培训资料,从面向对象编程和程序逻辑的基本概念入手,引领读者踏上熟练运用Xcode和Objective-C的征程,手把手教读者编写iPhone、iPad和Mac应用程序。作者注重实践,始终强调亲自动手的重要性,并在书中给出了大量示例代码和图示,教会读者从编程的角度考虑问题,使用Objective-C构建编程逻辑,并将所有东西合成到实际应用中。书中的方法对初学者很有帮助,真正做到让读者可以零基础起步,迅速掌握iPhone/iPad开发的要领。
  xcelMe.com提供关于本书内容的在线研讨、Q&A论坛以及习题答案。如果你想在App
Store中一举成名,本书就是你的起点。

作者简介

  Gary Bennett
资深软件开发工程师,xcelMe.com总裁,曾在多家公司担任CIO和总裁,并在2002年带领VistaCare成功上市。xcelMe.com是一家提供在线iPhone/iPad编程课程的网站,已培训了数千名iPhone/iPad应用程序开发人员。iTunes
App
Store上有不少大卖的应用程序都是xcelMe.com的学员开发出来的。除本书外,Gary还与人合著了《精彩iPhone炫酷开发:七位一线高手的编程和设计范例》(人民邮电出版社出版)。
  Mitch Fisher
资深软件开发工程师,20世纪80年代就投身于计算机领域,先后担任过多家大中型企业的软件工程师、软件架构师和软件经理。目前致力于开发iOS应用程序、创建Unix服务器端技术以及在xcelMe.com教授iOS开发。
  Brad Lees
在应用程序开发和服务器管理方面有超过15年的经验,尤其擅长设计房地产开发系统和金融机构的软件程序。Brad先后担任过The Lyle
Anderson公司信息系统经理、Smarsh产品研发经理、iNation应用程序开发副总裁,以及亚利桑那州最大的建筑设计事务所Orcutt/Winslow
Partnership的信息技术经理。

书籍目录

目录
第1章  成为优秀的iOS或Mac 程序员   
1.1  像开发人员一样思考   
1.2  完成开发周期   
1.3  面向对象编程简介   
1.4  操纵Alice界面   
1.5  总结   
1.6  习题   
第2章  编程基础   
2.1  和Alice一起漫游仙境   
2.1.1  导航菜单   
2.1.2  世界窗口   
2.1.3  Alice中的类、对象和实例   
2.1.4  对象树   
2.1.5  编辑区域   
2.1.6  细节区域   
2.1.7  事件区域   
2.2  创建一个Alice应用——登月   
2.3  你的第一个Objective-C程序   
2.4  总结   
2.5  习题   
第3章  关于数据   
3.1  编程中用到的数字系统   
3.1.1  比特   
3.1.2  字节   
3.1.3  十六进制计数   
3.1.4  Unicode   
3.2  数据类型   
3.3  在Alice中使用变量和数据类型   
3.4  数据类型与Objective-C   
3.5  确定问题所在   
3.6  总结   
3.7  习题   
第4章  程序流的决策与计划   
4.1  布尔逻辑   
4.1.1  真值表   
4.1.2  比较运算符   
4.2  应用设计   
4.2.1  伪代码   
4.2.2  设计需求   
4.2.3  流程图   
4.2.4  示例应用的设计和流程图   
4.2.5  应用的设计   
4.2.6  使用循环来重复程序语句   
4.3  示例应用在Alice中的程序实现   
4.4  示例应用在Objective-C中的程序实现   
4.4.1  嵌套的if语句和else-if语句   
4.4.2  删掉多余字符   
4.4.3  通过重构改善代码   
4.4.4  运行应用   
4.5  和Alice道别   
4.6  总结   
4.7  习题   
第5章  基于Objective-C的面向对象编程   
5.1  对象   
5.2  什么是类   
5.3  类的设计   
5.3.1  属性的设计   
5.3.2  方法的设计   
5.3.3  类的实现   
5.4  继承   
5.5  为什么使用OOP   
5.5.1  它无处不在   
5.5.2  消除冗余代码   
5.5.3  方便调试   
5.5.4  方便替换   
5.6  高阶课题   
5.6.1  接口   
5.6.2  多态   
5.7  总结   
5.8  习题   
第6章  学习Objective-C和Xcode   
6.1  Objective-C简史   
6.2  理解语言的符号   
6.3  面向对象概念   
6.4  用Xcode再写一个程序   
6.5  总结   
6.6  习题   
第7章  Objective-C的类、对象及方法   
7.1  创建Objective-C类   
7.1.1  声明接口和实例变量   
7.1.2  发送消息(方法)   
7.1.3  实现文件的使用   
7.1.4  方法的编码   
7.2  新类的使用   
7.2.1  创建项目   
7.2.2  添加对象   
7.2.3  完成实现文件   
7.2.4  创建用户界面   
7.2.5  连接代码   
7.2.6  运行程序   
7.2.7  充分发挥类方法的作用   
7.3  访问Xcode文档   
7.4  总结   
7.5  习题   
第8章  Objective-C编程基础   
8.1  集合类   
8.1.1  使用NSSet   
8.1.2  使用NSArray   
8.1.3  NSDictionary   
8.1.4  确定集合元素的类型   
8.2  使用可变类   
8.2.1  NSMutableSet   
8.2.2  NSMutableArray   
8.2.3  NSMutableDictionary   
8.3  创建BookStore应用程序   
8.4  引入实例变量   
8.4.1  访问实例变量   
8.4.2  使用获取方法和设置方法   
8.5  引入属性   
8.5.1  属性的使用   
8.5.2  理解惯例的重要性   
8.6  完成MyBookstore程序   
8.6.1  创建视图   
8.6.2  添加实例变量   
8.6.3  添加描述   
8.6.4  创建一个简单的数据模型类   
8.6.5  更改MasterViewController   
8.6.6  更改DetailViewController   
8.7  总结   
8.8  习题   
第9章  比较数据   
9.1  复习布尔逻辑   
9.2  使用关系操作符   
9.2.1  比较数值   
9.2.2  创建示例Xcode应用   
9.3  使用布尔表达式   
9.3.1  比较字符串   
9.3.2  比较日期   
9.3.3  比较的结合   
9.4  使用switch语句   
9.5  总结   
9.6  习题   
第10章  创建用户界面   
10.1  理解Interface Builder   
10.2  模型?视图?控制器   
10.3  人机交互界面准则(HIG)   
10.4  用Interface Builder创建iPhone示例应用   
10.4.1  使用Interface Builder   
10.4.2  Dock   
10.4.3  库   
10.4.4  查看器窗格和选择器工具条   
10.4.5  创建视图   
10.4.6  使用插口   
10.4.7  连接动作和对象   
10.4.8  实现文件   
10.5  总结   
10.6  习题   
第11章  数据存储   
11.1  存储注意事项   
11.2  首选项   
11.2.1  首选项的写操作   
11.2.2  首选项的读操作   
11.3  数据库   
11.4  在数据库中存储信息   
11.5  开始使用Core Data   
11.6  模型   
11.6.1  受控对象上下文   
11.6.2  设置界面   
11.7  总结   
11.8  习题   
第12章  协议和委托   
12.1  多继承   
12.2  理解协议   
12.3  理解委托   
12.4  下一步   
12.5  总结   
第13章  内存、地址和指针   
13.1  理解内存   
13.1.1  比特、字节和基数   
13.1.2  十进制转换为二进制   
13.1.3  使用十六进制的计数法   
13.2  理解内存地址的基础   
13.3  内存的分配   
13.4  解除分配内存   
13.5  在Objective-C中用ARC管理内存   
13.6  没有ARC的Objective-C内存管理   
13.6.1  使用保留/释放模型   
13.6.2  处理隐含的保留消息和自动释放   
13.6.3  发送dealloc消息   
13.7  如果出了问题   
13.8  ARC注意事项   
13.9  总结   
13.10  习题   
第14章  Xcode调试器   
14.1  准备调试   
14.1.1  设置断点   
14.1.2  使用断点导航器   
14.1.3  调试基础   
14.1.4  使用调试器控件

章节摘录

版权页: 插图: 对于首选项的写操作,你需要做的就是创建一个NSUserDefaults对象。就像下面这行代码一样: NSUserDefaults*prefs=(NSUserDefaults standardUserDefaults); 这行代码实例化了对象的prefs,现在可以使用它来设置首选项的值。下一步,需要设置你想要存储的值所对应的首选项的键。本章我们会继续使用前面的书店应用示例来展示特定的操作。对一个书店来说,你可能要在首选项中存储用户名或者密码。你也可能想要存储默认图书分类或者最近的搜索之类的东西。首选项文件对于存储这类信息来说很合适,因为这类信息只在程序启动的时候有读取的必要。 并且,在iPhone上,经常有必要保存当前状态。如果用户在使用应用的时候接到一个电话,你希望在他完成通话之后,能让你的应用恢复到用户通话之前所在的精确位置。现在对于iOS 4和iOS 5这些已经实现多任务功能的系统来说,这已经不那么必要了,但是如果你的应用能够在每次启动时记得用户上次使用它时正在做什么,你的用户还是很乐意的。 一旦实例化某个对象之后,开发者就可以调用setObjectforKey方法来对其进行设置。如果你想要保存用户名sherlock.holmes,就调用下面一行代码: (prefs setObject:@“sherlock.holmes”forKey:@“username”); 你可以用setInteger、setDouble、setBool、setFloat以及setURL方法,而不用直接调用setObject,这取决于你要存储在首选项文件中的信息类型。假设你存储的是用户想要在列表中看到的图书数量,下面就是使用setInteger来存储首选项的例子: (prefs setInteger: 10 forKey:@”booksInList”); 过一段时间之后,你的应用会自动向首选项文件中做写操作。你也可以通过调用synchronize函数强制应用保存首选项,但是在大多数情况下没有这个必要。下面这一行代码就可以调用同步函数: (prefs synchronize); 只用3行代码,我们就可以创建一个首选项对象,设置两个首选项的值,写首选项文件。

媒体关注与评论

一本初学者不容错过的好书!本书最大的优点在于不需要安装特殊软件,大部分资源都是免费的。——Overstock.com评论似乎每个人都可以为苹果的iPhone、iPad和Mac编写应用程序,那到底如何入手呢?来吧,本书告诉你这一切!——巴诺书店读者评论


编辑推荐

在线教授iPhone/iPad编程课程权威公司xcelMe.com总裁著作让各类程序员将自己现有的编程经验应用到Objective-C编程中来帮助没有任何编程经验的人开发出应用程序不懂编程也能投身移动开发从零起步学会iPhone/iPad应用编程原书提供免费在线学习资源

名人推荐

“一本初学者不容错过的好书!本书最大的优点在于不需要安装特殊软件,大部分资源都是免费的。” --Overstock.com评论 “似乎每个人都可以为苹果的iPhone、iPad和Mac编写应用程序,那到底如何入手呢?来吧,本书告诉你这一切!” --巴诺书店读者评论

图书封面

图书标签Tags

广告

下载页面


Objective-C初学者指南 PDF格式下载



当今世界每个人都应该有编程基础,我们就从iOS普及吧


书的质量还可以,内容大致浏览下感觉不错。主要是讲开发,不是c对象语言的基础


儿子说适合零起步的


很不错的,。。适合初学者。


内容有点欠缺了,很多东西没说清楚


拿了书看了下,不错


以前没学过,现在开始学习,希望会对我有帮助


这个商品还好吧 内容黑白的


送的挺快,纸张质量很差,内容不知道咋样


发货够速度


是将Alice与OC 结合讲解的 容易上手


帮家人买的。还没看


看了点,感觉还可以


this book is beyond my thought.


内里屏幕截图不清晰.


看来学code的书还是应该要再深入些才值得,太基础的并不适合翻看,不如电子资料更实用


这本书挺不错的,值得学习


还没看内容怎么样,但书的质量看着很好。


内容一般,不如其他的详细


经典书籍买来看,里面那个Alice好一阵折腾


新手入门教程,值得推荐~


苹果移动应用开发成为热点,越来越多的人投身其中,其中不乏从未涉及软件行业的菜鸟级人士。他们也能学会编写iPhone或iPad程序吗?也能做出App应用吗?答案是肯定的。本书就是针对这类人编写的。


这个商品不错!就是封面有刮痕


没意思,说的太简单了。


对于入门来说,这边书已经成功了。


内容和基础适合初学者,挺好的!但是发票一直没有寄给我!


好多地方看不明白,所以后续又买了几本书


前几章的入门就像课堂教学一样,能很好的让人理解从面向过程到面向对象的不同。结合斯坦福c193p公开课就理解得更好了。


书不错!等着看,希望能有所收获


如果编有写过其他语言经验的人前面大部分都不用看,就算掌握书内所有内容也不行


虽然说是初学者指南,但是如果完全没有Objective-C基础是很难完全看懂的


如题,内容很基本,虽然它说的初学者程序下载不了。。


内容都比较基础,有学过其他语言的人很容易上手


学Object-C必备的书籍。


Objective-C初学者指南


学习学习很不错


对于初学者可以了


不错的书,送得也及时


给同事带的,应该还不错吧


相关图书