iOS编程

出版社:华中科技大学出版社
出版日期:2013-3-1
ISBN:9787560986050
作者:Joe Conway,Aaron Hillegass
页数:608页

章节摘录

版权页:   插图:   本书已经指导读者编写并使用了多个存储对象。本节将向读者分析这些对象的差异,并指导读者如何根据不同的情况来创建存储对象。 读者在设计某个存储对象前,需要问自己以下三个问题。 需要处理怎样的外部数据源? 是否应该使用单实例? 如何返回请求结果? 明确外部数据源 为某个应用设计存储对象时,第一个需要考虑的问题是应用会使用哪些外部数据源?这能帮助读者决定应该为相应的应用创建几种存储对象。 应用中的存储对象是否必须和外部数据源保持一对一的关系?答案是否定的。以Nerdfeed为例,BNRFeedStore对象最初只能访问一个数据源:BNR的Web服务。更新BNRFeedStore后,BNRFeedStore对象也可以向iTunes的Web服务发起请求。虽然针对上述两个独立的数据源,BNRFeedStore对象需要发起两个不同的请求,但是和这两个数据源交互的代码都差不多。针对这种情况,完全可以使用单个存储对象来处理上述两种数据源。这样可以避免因为使用两种独立的对象而产生冗余代码。 此外,存储对象也可以和外部数据源保持一对一的关系。以Homepwner的BNRItemStore和BNRImageStore为例,BNRItemStore对象负责获取并保存RSSItem对象,BNRImageStore对象负责获取并保存UIImage对象。这两种存储对象需要负责处理不同类型的请求和数据,代码差异很大。针对这种情况,最好通过不同的对象分开实现不同类型的请求逻辑。设计BNRImageStore的初衷就是用于存取图片,不牵涉BNRTtem对象乃至Homepwner。如果在BNRItemStore中实现上述功能,就会增加其复杂度,降低重用性。 应该怎样规划不同的请求逻辑和存储对象之间的关系?如果某个应用的请求逻辑可以独立工作,不会涉及其他代码,就可以用不同的存储对象来单独实现这些请求逻辑。另一方面,如果某个应用的请求逻辑包含类似的代码,那么即使针对的是不同的外部数据源,也可以用同一个存储对象来实现这些逻辑。这样可以使相关的代码更容易阅读、维护、测试和重用。 确定完需要创建的存储对象,以及需要处理的外部数据源后,接下来要根据每个存储对象需要完成的任务,设计具体的实现逻辑。以Nerdfeed的BNRFeedStore为例,BNRFeedStore对象需要从两个不同的外部数据源获取数据。所以除了要为BNRFeedStore实现共通的Web请求代码,还要针对BNR的Web服务及iTunes的Web服务实现不同的细节代码。

前言

要成为一名优秀的iOS程序员,需要攻克以下三项难题。必须学会Objective-C语言。Objective-C是C语言的扩展,小巧简单。读完本书的前4章,读者就能掌握Objective-C的基础知识。必须掌握Cocoa的常用技术。其中包括内存管理、委托机制(delegation)、固化机制(archiving),以及如何正确使用视图控制器(viewcontroller)。理解这些技术需要花些时间。本书前半部分会介绍这些内容。必须掌握框架(framework)。读者的最终目标是了解iOS的所有框架,学会如何使用框架中的每一个类和方法。但这几乎是不可能完成的任务:iOS有3000多个方法,200多个类。而且随着iOS的版本升级,Apple还会不断地加入新的类和方法。本书将会介绍iOSSDK中的各个组成部分,但是不会太过深入。作者的目标是带领读者入门,使读者能够自行阅读并理解Apple的参考文档。BigNerdRanch公司采用本书作为“iOS新手培训课程”的教材。这些内容经过了长期的检验,并且帮助很多人成为iOS程序员。真心希望本书也能给你带来帮助。

名人推荐

阅读此书,转身成为iPhone/iPad程序员。——Dietrich Kappe,Pathfinder Development公司CTO

内容概要

Joe Conway是Big Nerd Ranch的资深教师,自iOS平台发布以来一直从事相关的咨询服务。Joe毕业于美国威斯康辛大学,在Mac OS X早期即开始编写Objective-C和Cocoa代码。他编写了Big Nerd Ranch的“iOS新手培训课程”教材。该教材 广受好评,是本书的原型。
Aaron Hillegass曾就职于NeXT公司和Apple公司,目前在Big Nerd Ranch教授iOS编程课程。Aaron在NeXT时编写了第一本OpenStep教材(OpenStep是Cocoa的前身)。本书以Big Nerd Ranch的教学课程为基础,涵盖了近20年OpenStep和Cocoa的开发成果。

书籍目录

前言
第1章 第一个简单的iOS应用 1
1.1 创建Xcode项目 2
1.2 创建界面 5
1.3 模型-视图-控制器 9
1.4 声明 11
1.5 创建关联 13
1.6 实现方法 17
1.7 针对模拟器构建并运行应用 20
1.8 安装应用 22
1.9 应用图标 23
1.10 启动图片 25
第2章 Objective-C 29
2.1 对象 29
2.2 使用实例 30
2.3 编写命令行工具RandomPossessions 33
2.4 创建Objective-C类的子类 39
2.5 异常与未知选择器 56
2.6 快速枚举 58
第3章 通过ARC管理内存 61
3.1 堆 61
3.2 栈 62
3.2 指针变量与对象所有权 63
3.4 内存管理 64
3.5 Strong引用与Weak引用 67
3.6 属性 72
3.7 copy特性 77
3.8 用点号调用存取方法 78
第4章 委托与Core Location 81
4.1 项目、目标与框架 82
4.2 Core Location 83
4.3 委托 87
4.4 使用调试器 91
第5章 MapKit与文本输入 103
5.1 对象图 103
5.2 MapKit框架 104
5.3 界面属性 105
5.4 设置MapView对象的委托对象 108
第6章 UIView子类与UIScrollView 121
6.1 视图与视图层次结构 122
6.2 创建自定义视图 124
6.3 UIView的drawRect:方法 128
6.4 Core Graphics 131
6.5 UIKit中的绘图扩展 132
6.6 重画视图 134
6.7 运动事件 136
6.8 使用UIScrollView 138
6.9 隐藏状态条 142
第7章 视图控制对象 145
7.1 UIViewController 145
7.2 UITabBarController 155
7.3 视图控制对象的生命周期 159
7.4 UIViewController子类与模板 168
第8章 通告机制与自动转屏 173
8.1 通告中心 173
8.2 UIDevice通告 175
8.3 自动转屏 176
8.4 强制使用横排模式 184
第9章 UITableView与UITableViewController 187
9.1 编写Homepwner应用 187
9.2 UITableViewController 189
9.3 UITableView数据源 192
9.4 UITableViewCell对象 198
9.5 代码片段库 203
第10章 编辑UITableView 207
10.1 编辑模式 207
10.2 增加行 213
10.3 删除行 215
10.4 移动行 216
第11章 UINavigationController 219
11.1 UINavigationController 219
11.2 额外的视图控制对象 223
11.3 UINavigationController的导航功能 228
11.4 UINavigationBar 233
第12章 相机 239
12.1 通过UIImageView对象显示图片 239
第13章 UIPopoverController与模态视图控制对象 261
13.1 将Homepwner改为通用应用 261
13.2 UIPopoverController 263
13.3 更多的模态视图控制对象 266
第14章 保存、读取与应用状态 279
14.1 固化 279
14.2 应用沙盒 281
14.3 NSKeyedArchiver与NSKeyedUnarchiver 283
14.4 应用状态与状态切换 286
14.5 通过NSData将数据写入文件 289
14.7 再谈内存过低警告 291
14.8 模型-视图-控制器-存储设计模式 292
第15章 创建UITableViewCell子类 299
15.1 创建HomepwnerItemCell 299
15.2 处理图片 305
15.3 由UITableViewCell对象转发动作消息 308
第16章 Core Data 317
16.1 对象-关系映射 317
16.2 用Core Data重写BNRItemStore的数据保存功能 318
16.3 再谈SQL 336
16.4 Faults 337
16.5 各种存取机制的优缺点 339
第17章 本地化 341
17.1 通过NSLocale实施国际化 342
17.2 资源的本地化 343
17.3 NSLocalizedString与字符串对照表 347
第18章 NSUserDefaults 351
18.1 更新Whereami 351
18.2 使用NSUserDefaults 353
第19章 触摸事件与UIResponder 357
19.1 触摸事件 357
19.2 创建TouchTracker应用 359
19.3 实现TouchDrawView,完成绘图功能 360
19.4 处理触摸事件并创建线条对象 361
19.5 响应对象链 364
第20章 UIGestureRecognizer与UIMenuController 367
20.1 UIGestureRecognizer子类 367
20.2 用UITapGestureRecognizer对象识别“按下”手势 368
20.3 UIMenuController 371
20.4 UILongPressGestureRecognizer 372
20.5 UIPanGestureRecognizer以及同时识别多个手势 374
第21章 Instruments 380
21.1 静态分析器 380
21.2 Instruments 382
21.3 Xcode方案 392
21.9 创建新方案 394
21.4 构建设置 396
第22章 Core Animation Layer 399
22.1 层与视图的关系 399
22.2 创建CALayer对象 400
22.3 层的显示内容 403
22.4 隐式可动画属性 405
第23章 通过CAAnimation控制动画 411
23.1 动画对象 411
23.2 通过CABasicAnimation实现旋转动画 414
23.3 通过CAKeyframeAnimation实现弹跳动画 419
第24章 UIStoryboard 423
24.1 创建Storyboard文件 423
24.2 Storyboard文件中的UITableViewController 427
24.3 Segue 430
24.4 Storyboards的优缺点 434
第25章 Web服务与UIWebView 437
25.1 Web服务 438
25.2 UIWebView 456
第26章 UISplitViewController与NSRegularExpression 463
26.1 在Nerdfeed中使用UISplitViewController 464
26.2 主、从视图控制对象间的通信 468
26.3 在竖排模式下显示主视图控制对象 475
26.4 将Nerdfeed改为通用应用 477
26.5 NSRegularExpression 478
第27章 Block对象 485
27.1 Block对象及其语法 485
27.2 浅谈如何使用Block对象 490
27.3 捕获变量 493
27.4 Block对象的常见用途 496
第28章 模型-视图-控制器-存储 503
28.1 为什么需要存储对象 503
28.2 创建BNRFeedStore 506
28.3 使用BNRFeedStore对象 508
28.5 通过JSON格式传输数据 521
28.6 再谈存储对象 526
第29章 再谈MVCS 529
29.1 缓存RSS数据 529
29.2 高级缓存 535
29.3 已读RSSItem对象与未读RSSItem对象 545
29.4 使用存储对象的其他益处 550
第30章 iCloud 555
30.1 使用iCloud前的准备工作 556
30.2 Ubiquity Container 556
30.3 支持iCloud的provisioning profile 558
30.4 Core Data与iCloud 561
第31章 后记 569
31.1 接下来做什么 569
31.2 结束语 570
索引 571

编辑推荐

《Big Nerd Ranch培训系列:iOS编程(第3版)》有两个特点:第一、涵盖iOS应用开发必备知识:从Objective-C基础知识到新语言特性,从AppKit库到常见的Cocoa设计模式,从Xcode技巧到Instruments,不一而足。第二、指导读者以正确的方法解决问题:Objective-C的习惯约定有哪些(例如命名约定,内存管理约定),创建子类时如何处理初始化方法,Cocoa的常见设计模式有哪些,如何选择数据保存方法……iOS开发包括iPhone开发、iPod touch开发和iPad开发,《Big Nerd Ranch培训系列:iOS编程(第3版)》中绝大部分内容可通用,有差异的部分(例如iPad界面)单独予以说明。《Big Nerd Ranch培训系列:iOS编程(第3版)》使用最新的iOS SDK,包括4.3版本的Xcode。虽然iOS SDK一直在升级,但《Big Nerd Ranch培训系列:iOS编程(第3版)》翻译完成之际,与SDK有关的内容仍然有效。

作者简介

《iOS编程(第3版)》获21届Jolt生产力大奖。第3版更新了iOS5和Xcode4.3的内容。全书涵盖了开发iOS应用的方方面面。从Objective-C基础知识到新增加的语言特性;从AppKit库到常见的Cocoa设计模式;从Xcode技巧到Instrumen tst等。如果读者刚接触iOS编程,阅 读本书前两章可以快速入门。如果读者已经有iOS编程经验,阅读本书可以拾遗补缺。本书的另一个特色是教读者以正确的方法解决问题。Objective-C的习惯约定有哪些(例如命名约定,内存管理约定),创建子类时如何处理初始化方法,Cocoa的常见设计模式有哪些,如何选择数据保存方法等。这些问题,如果读者自己摸索,难免费时费力。本书已经将这些知识整理、归纳并清楚地呈现在读者面前。
Big Nerd Ranch培训系列中文图书网站:http://www.iosprogrammingbook.com/


 iOS编程下载 精选章节试读 更多精彩书评



发布书评

 
 


精彩书评 (总计10条)

  •     一、章节安排合理,本书分别从语言--技术--框架三个层面来安排每个章节,使初学者按照循序渐进的学习方法学习。 二、本书注重概念的讲解,对于概念的讲解也是采用代码和说明并行的方法进行的。而且更加注重代码的使用和练习。 三、通过前言部分的介绍,可以看出每一章节的内容都是很饱满和充实的,而且实用性很强。前言中对于代码风格、版式设计、运行环境也是非常的详细。 四、第一章的简单ios应用的讲解,非常的详细的从工具的使用、代码的编写、界面的设计、方法的关联、设计模型的说明、模拟器的运行、应用的安装、启动等每个方面进行了讲解,而且讲解的不罗嗦,很清晰明了。对于初学ios的人来说,通过第一章已经可以对ios的编写有了一个详细的入门。 五、第二章和第三章里,对于objective-c语言的介绍更是详细和细致,通过对每个语法,对象、发送消息等等,小方面的说明讲解,让初学者更加的容易理解和快速的上手。很多地方配有讲解的图片,也会更容易理解。对于类、实例变量、存取方法的关系讲解的也很透彻。 六、本书对于初学ios编程者,非常适合,从我这个初学者角度来看,有一种越读兴趣越浓的感觉,而且不会让人感觉到越来越难。
  •     前些时间刚刚结束了BNR:Objective-C的书评送书活动,当时还在想什么时候会有BNR:iOS的书评送书活动,这不马上就有了,32个赞顶起啊BNR出品必属精品啊,给你一个很好的入门,前面的路铺好了,后面走起来也会很快。废话不多说了。等不着中文版的,就先着急的读原版了。虽然这里发的是第3版的样章,但从内容上看起来没有太多区别,只是用的Xcode是4.3 SDK也不是最新的,但是完全不影响学习哈。第一个demo依然是Q&A,非常简单的例子,把应用开发中的基础知识讲解的非常透彻,同时也教你学习Xcode工具,加快程序的开发,这里用的xib来构建view(虽然在实际开发用xib画view比较少用,主要是不方便管理),把各个控件与view的关系理的很清晰。 对于用户的点击,界面的响应,及背后都做了些什么事情,也都用图表的形式给予解释,让人一目了然。作者们都很用心,想把iOS的一切都告诉你,可能现在你还理解不了对于其中讲MVC部分非常喜欢,MVC常常挂在嘴边,说起容易,理解起来也是很难,但真正在写代码时把他们分的一清二楚还需要多写几年代码吧,这里在一开始就把MVC引入,并在例子中进行解释,把每个类的所属表达的很清楚,一下就可以看清程序中每个类之间的关系是怎样的,真心赞。真正到了实际项目中,类多的很,要想真正理清他们间的关系,好难还要再说下,在讲xib与code关联时,那些技能是基本的,虽然在真正项目开发中用的不多,但是掌握下对于理解后面的内容是有帮助的,这里用图的形式描述它们间的关系,如每个controller的view与他的控件是怎么管理的,点击事件又是怎么响应的,在后面用到uitablview时对delegate,datasource的理解也是很有帮助的。通过第一个例子Q&A,一个完整的iOS应用就开发完了,虽然功能简单,但是过程完整,(麻雀虽小,五脏俱全啊),在开发复杂的应用时 主要是业务逻辑复杂了,过程还是那些。掌握了基本过程,再开发应用时就是只有想不到,没有做不到啦在第二章中涉及到了设计模式的知道,工厂方法,这是比较简单容易理解的一种设计模式,用在这一章的例子中再适合不过了,作者将各种知识融合的恰到好处啊。虽然样章中第2章不完整,你是不是已经按捺不住要继续读下去的心情了,等不及可以先去买本读着,等第4版出了再看一遍,如此喜欢再读一遍又何妨呢。但是呢,有个前提就是你如果把BNR:Objective-C提前读过了对于理解书中的知识很有帮助,在本书中经常会映射到那本书中,所以读过那本书,对这个的学习理解都很有帮助的。写完了,我接着看书去得,iOS7的书好多都没有引进的,真心希望华中科技出版社能够多引进些优秀的书,小伙伴们,抓紧了,再不快点8都快要来了啊
  •     1.本书关于开发和调试以及代码编写等有很详细和规范的说明,但是感觉不是太适合初学者(完全的小白),看这本书还是需要一定的编码基础、数据结构和设计模式等方面的知识,感觉作为已经有经验的人更适合读这本书。初学者可能需要一些额外的参考书来辅助阅读;2.很喜欢这本书的循序渐进方式的讲解方法,感觉很赞,如果以前学C++的时候有这种方法可能会很轻松;3.书里面的代码排版没有明确的行号和背景,作为有点强迫症的人看着感觉有点乱,插图方面很好奇很多都没有替换成中文的?4.后面的东西还没看到,看目录的话感觉内容还是很全面的,要是再有一个简单的关于API之类的可以用来查询的表可能会更好

精彩短评 (总计42条)

  •     很通俗易懂,就是太厚了,需要静下心来看。
  •     入门级
  •     翻译一般,中英版本结合看,比较好
  •     ios入门必备啊 一周搞定ios入门啊
  •     很适合我这种初学者,
  •     还没看书,感觉还行吧
  •     看完前几章就可以动手了
  •     虽然后面也出现了一些跳跃概念的情况 , 但相对而言还是对初学者非常友善的一本..
  •     很棒很不错!很好的入门教材
  •     入门书,讲的很细,翻译不糙。
  •     很不错的书,比较适合初学者.可以看出作者编写很用心!
  •     很实用的一本工具书,这本书没有繁重的Objective-c的基本语法,又不像那种单纯构建iOS应用的纯粹应用开发书,他很好地介于了两者之间,读过一遍照着demo写写代码就可以上手去做开发了。但是这本书缺点也很明显,第一608页的书还是稍显啰嗦,另外也是iOS书的通病就是跟不上变化。。
  •     优秀的iOS开发入门书
  •     不错的一本书!哈
  •     中速入门
  •     书是好书,就是ios 更新太快,不坚持写的话,很快就跟不上了。
  •     内容很充实,适合有一点iOS 开发基础的人阅读
  •     打开包裹的时候看到封面有破损,当时就感觉很不好,看看里面就感觉更不好了,有的地方字体模糊,图片也糊!这些我都忍了,书的内容还是很好的,语言表达很到位,没有故弄玄虚,用非常直白的语言讲述知识点,不管是难点还是重点,都能说的很清楚!冲着内容我可以忽略书的质量问题,希望店家能改善书的质量!
  •     挺好的,老师推荐的就买了
  •     偏枯燥的教材,国外的教材编写往往更加专业一些,缺点就是枯燥。好在ios编程本身还算简单易懂。参加苹果开发计划还要交钱这点略坑爹q( ̄‐ ̄*)
  •     凯神说有点老
  •     初学者,学习中,还挺详细的
  •     有一些可以简略带过,看官方文档补充。
  •      讲的深入浅出 而且理论结合实践 是ios 入门不可多得的好书籍
  •     之前做过2年多android,之前也粗略学了一周IOS,感觉这本书讲的还是比较详细的,目前只看到第五章,读起来不觉得像一般的技术书晦涩难懂,适合我这种有些经验的初学者,有广度,有细节,每章后面的3级练习也是不错的内容,就是翻译的有时候读起来怪怪的,不过也不能怨译者,原版的书应该更好,但是原本比较贵,而且读起来速度要慢很多。
  •     绝对经典的iOS 入门书籍,三天看完,内容浅显易懂,最适合初学者,以前好多似懂非懂的点都理解了,强烈推荐。
  •     翻译得非常好的技术书籍,难得。
  •     全、详、厚。几乎所有章节看了不下两遍。跟大学时期的windows编程一个套路,初学者就是无尽的框架框架框架和厚的死的英文文档。课后题和笔记后续贴出博客链接...
  •     Afterword: what to do next? "Enroll Now! $99/year", ^#&$&@#*
  •     時隔一年多終於想起來把它補完。我的iOS入門書,夠手把手,在底層細節上也有一定程度說明。書是Xcode 5的時候寫的,現在Xcode 8,Objective-C也轉成Swift了,但不妨礙大多數章節的閱讀。
  •     for beginners.
  •     适合初学者入门
  •     适合入门,动手较多。不过每一章建议配合对应的apple programming guide,理解的越深越好。
  •     深入浅出
  •     讲解很详细,iOS开发入门好书
  •     书本身很不错,只是有点out
  •     #iOS 修养#
  •     非常适合入门,不只是简单的例子,还有例子的引申应用,加上章节最后的练习,让你在自己动手中模仿学习,还能触发你思考怎么自己解决问题
  •     适合概览 iOS 的知识
  •     太老。
  •     内容覆盖广却不深;通过几个小项目介绍知识点,有个 Nerdfeed 项目不错....
  •     很好的一本书,讲解很到位,相见恨晚的感觉
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024