{{sellerTotalView > 1 ? __("sellers", {number: sellerTotalView}) : __("seller", {number: sellerTotalView}) }}, {{numTotalView > 1 ? __("items", {number: numTotalView}) : __("item", {number: numTotalView}) }}
免运费
Yami

Nickname

请告诉我们怎么更好地称呼你

更新你的名字
账户 订单 收藏
{{ inviteNavTitle }}
退出登录

切换配送区域

不同区域的库存和配送时效可能存在差异.

历史邮编

{{email ? __('Got it!') : __('Restock Alert')}}

我们将在商品到货后第一时间通知你。

取消
Yami

京东图书

iOS核心开发手册(原书第5版)

{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}

iOS核心开发手册(原书第5版)

{{__(":people-members", {'people': item.limit_people_count})}} {{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ item.invalid_price }} {{ itemDiscount }}
后结束
{{ itemCurrency }}{{ item.valid_price }}
{{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }}
{{ itemDiscount }}
{{ itemCurrency }}{{ item.valid_price }} {{ itemCurrency }}{{ priceFormat(item.valid_price / item.bundle_specification) }}/{{ item.unit }} {{ itemCurrency }}{{ item.invalid_price }} {{itemDiscount}}
{{ itemCurrency }}{{ item.valid_price }}
后结束促销
后开始秒杀 后结束秒杀
{{ getSeckillDesc(item.seckill_data) }}
{{ __( "Pay with Gift Card to get sale price: :itemCurrency:price", { 'itemCurrency' : itemCurrency, 'price' : (item.giftcard_price ? priceFormat(item.giftcard_price) : '0.00') } ) }} ({{ itemCurrency }}{{ priceFormat(item.giftcard_price / item.bundle_specification) }}/{{ item.unit }}) 详情
商品有效期

已下架

当前地址无法配送
已售完

商品描述

展开全部描述
编辑推荐

世界知名iOS开发专家详细讲解创建优秀iOS移动应用程序的技术细节,系统阐释如何高效开发iOS程序

用直观的代码演示当前流行的编程技巧,为iOS开发者提供行之有效的解决方案

内容简介

《iOS核心开发手册(原书第5版)》由著名iOS编程专家、顶端iOS开发大师联合撰写,是市面上最畅销的iOS开发图书的全新升级版本。书中用丰富的实例、直观的代码展示创建优秀iOS程序所需的全部技巧,帮助读者轻松掌握并高效开发iOS程序。

《iOS核心开发手册(原书第5版)》共分15章:第1章讲解iOS程序中的手势与触摸,包括直接操纵界面、多点触摸和创建自定义的手势识别器;第2章深入讲解如何操控应用程序;第3章介绍如何在应用程序中实现信息通知;第4章讲解如何编排视图及其动画效果;第5章介绍如何用代码来做视图方面的约束;第6章讲解如何控制键盘、使屏幕上面的控件支持文本输入、扫描文本、格式化文本等;第7章介绍各种视图控制器类的用法;第8章讲解常用的控制器,包括从照片库中选取照片、拍照、录制并编辑视频等;第9章介绍表格的用法,解释表格的工作原理,讲解可供开发者使用的各种表格,并且告诉你如何在程序中利用表格的各种特性;第10章讲述使用Collection 视图所需的各种基础知识,包括如何创建可以横向滚动的列表,如何创建网格布局,如何创建“圆形”等特殊方式的布局;第11章讲解如何在应用程序之间分享文档及数据;第12章浅谈Core Data,你会学到如何设计受托管的数据库存储区,如何添加并删除数据,如何用代码查询数据,以及如何把这些操作同UIKit中的Table 视图及Collection 视图相集成;第13章介绍网络编程中的常用技术,同时也提供一些解决方案,用来简化日常的网络开发任务;第14章讲解针对特定设备的开发,包括如何查看设备的硬件规格以及可供使用的感应器等;第15章简单介绍VoiceOver这项辅助功能,开发者可以通过该功能尽量扩大应用程序的受众。

作者简介

Erica Sadun,是数十本畅销书的作者、合著者和供稿者,这些书涉及程序设计、数字视频、数字摄影、Web设计和其他技术主题。作为一名在iOS领域最负盛名的开发人员,她还开发了数十种iPhone自带的应用。Sadun拥有佐治亚理工学院计算机科学专业的博士学位。


Rich Wardwell,是Black Pixel的资深iOS及Mac开发者,在专业级服务器、桌面和移动领域有20多年软件开发经验,并以主要开发者的身份参与制作了很多款Apple App Store上的优秀iOS应用程序,包括USA Today及Fox News。。


爱飞翔,资深软件开发工程师,擅长Web开发、移动开发和游戏开发,有10余年开发经验,曾主导和参与了多个手机游戏和手机软件项目的开发,经验十分丰富。业余爱好文学和历史,有一定的文学造诣。翻译并出版了《Android游戏开发实践指南》、《测试驱动的iOS开发》、《HTML5 Canvas核心技术:图形、动画与游戏开发》、《NoSQL精粹》和《JavaScript应用开发实践指南》等书。

目录

译者序
前言
致谢
第1章手势与触摸 1
1.1触摸 1
1.1.1触摸操作所处的阶段 2
1.1.2UIResponder类中的触摸事件响应方法 3
1.1.3对视图的触摸 4
1.1.4多点触摸 4
1.1.5手势识别器 5
1.2解决方案:添加简单的直接操纵界面 5
1.3解决方案:添加拖动手势识别器 7
1.4解决方案:同时使用多个手势识别器 9
1.5解决方案:限制移动 14
1.6解决方案:测试触摸 15
1.7解决方案:针对位图的触摸测试 17
1.8解决方案:根据触摸情况在屏幕上绘制内容 19
1.9解决方案:令绘制效果变得平滑 21
1.10解决方案:启用多点触摸 24
1.11解决方案:检测圆圈手势 27
1.12解决方案:创建自定义手势识别器 32
1.13解决方案:把滚动视图中的内容拖曳到外面 34
1.14解决方案:实时的触摸反馈 37
1.14.1启用触摸反馈效果 38
1.14.2拦截并转发触摸事件 38
1.14.3实现TOUCHkit的TOUCHkitView类 40
1.15解决方案:向视图中添加菜单 42
1.16小结 43
第2章构建并使用控件 45
2.1UIControl类 45
2.1.1目标-动作模式 46
2.1.2控件的种类 46
2.1.3控件事件 46
2.2按钮 48
2.3Interface Builder中的按钮 50
2.4解决方案:构建按钮 51
2.4.1多行按钮文本 54
2.4.2为按钮添加动画元件 54
2.4.3为按钮添加额外状态 55
2.5解决方案:使按钮以动画效果来响应用户 55
2.6解决方案:为滑杆控件添加自定义的滑块 57
2.6.1定制UISlider控件 57
2.6.2添加优化代码 58
2.7解决方案:创建可以连续点击两次的分段选择控件 61
2.7.1实现第二次点击时的反馈效果 62
2.7.2控件及带属性的字符串 63
2.8开关控件与步进控件 64
2.9解决方案:编写UIControl的子类 65
2.9.1创建控件 68
2.9.2追踪触摸事件 68
2.9.3派发控件事件 69
2.10解决方案:构建评分所用的Star Slider控件 69
2.11解决方案:构建触摸转盘控件 72
2.12解决方案:创建拉曳控件 75
2.12.1为控件添加提示效果 75
2.12.2测试触摸 77
2.13解决方案:构建自定义的锁定控件 80
2.14解决方案:图片库查看器 83
2.15构建工具栏 85
2.16小结 88
第3章提醒用户 89
3.1直接向用户弹出警告视图 89
3.1.1构建简单的警告视图 89
3.1.2设置UIAlertView的委托 91
3.1.3显示UIAlertView 92
3.1.4各种UIAlertView 92
3.2解决方案:构建支持块的警告视图 93
3.2.1块简介 93
3.2.2使用块时避免保留循环 95
3.3解决方案:将变长参数列表与UIAlertView结合起来使用 98
3.4展示选项列表 99
3.4.1滚动菜单 101
3.4.2在动作表中显示文本 101
3.5将操作进度告知用户并提示其稍等片刻 102
3.5.1使用UIActivity-IndicatorView 103
3.5.2使用UIProgressView 103
3.6解决方案:在屏幕上绘制模态的进度指示器 104
3.7解决方案:自制的模态警告视图 106
3.8解决方案:基本的popover 110
3.9解决方案:本机通知 111
3.10用网络活动指示器提醒用户 113
3.11解决方案:播放简单的提示音 114
3.11.1System Sound 114
3.11.2为使用系统框架而引入模块 115
3.11.3震动 115
3.11.4警示音 116
3.11.5延迟 117
3.11.6释放系统音 117
3.12小结 117
第4章编排视图及其动画效果 119
4.1视图层级 119
4.2解决方案:用树状图来描述视图层级 121
4.3解决方案:查询子视图 123
4.4管理子视图 125
4.4.1添加子视图 125
4.4.2重排及删除子视图 125
4.4.3UIView的回调方法 125
4.5为视图设定标签并查找视图 126
4.6解决方案:通过对象关联机制为视图设定名称 127
4.7视图的几何特征 129
4.7.1框架 130
4.7.2与CGRect有关的工具函数 130
4.7.3CGPoint与CGSize 131
4.7.4CGAffineTransform 132
4.7.5坐标系统 133
4.8解决方案:操控视图的框架 133
4.8.1调整视图的尺寸 134
4.8.2CGRect与中心点 136
4.8.3视图的其他几何特征 137
4.9解决方案:获取与坐标变换有关的信息 141
4.9.1获取与变换有关的属性 141
4.9.2判断两个视图是否相交 142
4.10与显示和交互有关的特征 147
4.11UIView的动画效果 148
4.12解决方案:视图的淡入与淡出 150
4.13解决方案:交换两个视图的前后顺序 151
4.14解决方案:翻转视图 151
4.15解决方案:采用Core Animation API来制作切换效果 153
4.16解决方案:使视图在出现之后回弹 155
4.17解决方案:关键帧动画 156
4.18解决方案:UIImageView的动画效果 157
4.19小结 158
第5章视图的约束系统 160
5.1什么是约束 161
5.2约束系统所用的属性 161
5.3约束系统的运作规律 163
5.4约束规则与框架属性 165
5.4.1固有内容的尺寸 165
5.4.2对齐矩形 166
5.5创建约束规则 167
5.5.1基本约束规则声明 167
5.5.2用可视化格式字符串声明约束规则 168
5.5.3变量绑定 169
5.6格式字符串 169
5.6.1方向 169
5.6.2连接 171
5.7谓词 173
5.7.1指标 173
5.7.2描述两个视图关系的谓词 174
5.7.3优先级 174
5.8格式字符串总结 174
5.9用格式字符串将视图对齐并灵活调整其尺寸 176
5.10处理约束规则的流程 176
5.11管理约束规则 177
5.12解决方案:实现约束规则之间的对比 178
5.13解决方案:创建尺寸固定且受规则约束的视图 181
5.13.1禁用translatesAutoresizing-MaskIntoConstraints 181
5.13.2令视图出现在上级视图范围内 182
5.13.3限定视图的尺寸 183
5.13.4把前面各节内容拼装起来 183
5.14解决方案:将两个视图居中对齐 185
5.15解决方案:设定宽高比 186
5.16解决方案:响应屏幕方向的变更 188
5.17调试约束规则 190
5.18解决方案:描述约束规则 191
5.19用宏来创建约束规则 194
5.20小结 197
第6章文本输入 198
6.1解决方案:隐藏UITextField的键盘 199
6.1.1阻止系统把键盘隐藏起来 200
6.1.2UITextInputTraits协议中的属性 200
6.1.3文本框的其他属性 201
6.2解决方案:把带有自定义辅助视图的键盘隐藏起来 203
6.3解决方案:根据键盘来调整文本视图 205
6.4解决方案:创建自定义的输入视图 209
6.5解决方案:使视图具备文本输入功能 213
6.6解决方案:为非文本视图添加自定义的输入视图 216
6.7解决方案:创建更好的文本编辑器(第一部分) 218
6.8解决方案:创建更好的文本编辑器(第二部分) 221
6.8.1启用Attributed Text 221
6.8.2控制文本的样式 221
6.8.3可供UIResponder使用的其他功能 223
6.9解决方案:过滤用户所输入的文本 224
6.10解决方案:检测文本模式 226
6.10.1构建自己的正则表达式 227
6.10.2枚举正则表达式 227
6.10.3数据探测器 228
6.10.4使用内置类型的探测器 229
6.10.5有用的网站 229
6.11解决方案:检测UITextView中的拼写错误 231
6.12搜寻文本中的字符串 232
6.13小结 233
第7章使用视图控制器 234
7.1视图控制器 234
7.1.1UIViewController类 235
7.1.2导航控制器 235
7.1.3标签栏控制器 235
7.1.4分栏视图控制器 236
7.1.5页面视图控制器 236
7.1.6popover控制器 236
7.2使用导航控制器与分栏视图控制器来开发程序 237
7.2.1使用导航控制器与导航栈 238
7.2.2推入与弹出视图控制器 239
7.2.3导航栏上的按钮 239
7.2.4延伸至屏幕边缘的布局形式 240
7.3解决方案:UINavigationItem类 241
7.3.1标题与后退按钮 242
7.3.2宏 242
7.4解决方案:模态界面 244
7.5解决方案:构建分栏视图控制器 248
7.6解决方案:用分栏视图及导航控制器创建通用的程序 253
7.7解决方案:标签栏 255
7.8记住标签的状态 259
7.9解决方案:页面视图控制器 262
7.9.1与书籍展示风格有关的属性 262
7.9.2封装实现细节 263
7.9.3范例代码详解 269
7.9.4构建界面索引 270
7.10解决方案:自定义的容器 271
7.10.1添加与移除子视图控制器 274
7.10.2视图控制器之间的切换效果 275
7.11解决方案:segue 276
7.12小结 282
第8章常用的控制器 284
8.1图像选取器控制器 284
8.1.1图像来源 284
8.1.2在iPhone和iPad中显示选取器 285
8.2解决方案:选取图像 286
8.2.1向模拟器中添加图片 286
8.2.2AssetsLibrary模块 286
8.2.3展示选取器 287
8.2.4处理delegate的回调 288
8.3解决方案:拍摄照片 293
8.3.1配置选取器 293
8.3.2显示图像 295
8.3.3把图像保存到相册 295
8.4解决方案:录制视频 297
8.4.1创建录制视频用的选取器 298
8.4.2保存视频 299
8.5解决方案:用媒体播放器播放视频 299
8.6解决方案:编辑视频 302
8.7解决方案:选取并编辑视频 304
8.8解决方案:通过电子邮件发送图片 306
8.9解决方案:发送文本消息 309
8.10解决方案:在社交网站发布消息 311
8.11小结 313
第9章创建并管理表格视图 314
9.1iOS的表格 314
9.2委托 315
9.3创建表格 316
9.3.1表格的样式 316
9.3.2排布表格视图 316
9.3.3设置数据源 317
9.3.4提供单元格 317
9.3.5注册单元格类 317
9.3.6从队列中取出单元格 318
9.3.7设置delegate 318
9.4解决方案:实现简单的表格 319
9.4.1数据源方法 319
9.4.2响应用户的触摸 322
9.5UITableViewCell类 322
9.5.1单元格的selectionStyle属性 323
9.5.2添加自定义的单元格受选效果 323
9.6解决方案:创建带有选取标记的单元格 323
9.7给单元格添加详情展示控件 325
9.8解决方案:编辑表格 327
9.8.1添加撤销功能 331
9.8.2实现撤销功能 332
9.8.3显示移除单元格所用的控件 332
9.8.4处理删除请求 332
9.8.5通过滑动手势删除单元格 333
9.8.6调整单元格的顺序 333
9.8.7添加单元格 333
9.9解决方案:操控表格的区段 334
9.9.1构建区段 334
9.9.2区段数量与区段内的行数 335
9.9.3返回单元格 335
9.9.4创建每个区段的头部标题 337
9.9.5定制表格与区段的头部及尾部 338
9.9.6创建区段索引 338
9.9.7处理索引与区段不匹配的问题 339
9.9.8为分区表格实现委托方法 339
9.10解决方案:在表格中搜索 339
9.10.1创建搜索显示控制器 341
9.10.2为搜索显示控制器注册单元格 341
9.10.3构建支持搜索功能的数据源方法 342
9.10.4委托方法 343
9.10.5使用与搜索功能相配套的索引 344
9.11解决方案:给表格添加下拉刷新功能 345
9.12解决方案:添加指令行 348
9.13制作自定义的分组表格 351
9.14解决方案:构建含有多个滚轮的表格 352
9.14.1创建UIPickerView 353
9.14.2数据源方法与委托方法 353
9.14.3使用带有选取器的视图 354
9.15使用UIDatePicker 356
9.16小结 357
第10章集合视图 358
10.1集合视图与表格的异同 358
10.2建立集合视图 360
10.2.1通过控制器使用集合视图 361
10.2.2直接使用集合视图 361
10.2.3数据源与委托 362
10.3流式布局 362
10.3.1滚动方向 362
10.3.2条目的尺寸以及行间距 362
10.3.3头部与尾部的尺寸 364
10.3.4内边距 365
10.4解决方案:采用流式布局的简单集合视图 366
10.5解决方案:自定义单元格 370
10.6解决方案:水平滚动的列表 372
10.7解决方案:创建交互式的布局效果 375
10.8解决方案:滚动之后自动调整位置 377
10.9解决方案:创建圆形布局 378
10.9.1实现创建条目与删除条目时的动画效果 381
10.9.2增强圆形布局的实用性 382
10.9.3布局对象 383
10.10解决方案:用手势调整布局 383
10.11解决方案:创建真正的网格状布局 385
10.12解决方案:为集合视图中的条目添加自定义菜单 391
10.13小结 393
第11章分享文档与数据 394
11.1解决方案:使用统一类型标识符 394
11.2解决方案:访问系统剪贴板 400
11.3解决方案:监控Documents文件夹 403
11.4解决方案:活动视图控制器 408
11.5解决方案:Quick Look预览控制器 417
11.6解决方案:使用文档交互控制器 420
11.7解决方案:声明程序所支持的文档类型 426
11.8解决方案:创建基于URL的服务 431
11.9小结 434
第12章浅谈Core Data 435
第13章网络编程基础 462
第14章针对特定设备的开发 493
第15章辅助功能 524
附录AObjective-C字面量 536

精彩书摘

3.1.3显示UIAlertView
show这个实例方法可以把UIAlertView显示出来。而显示出来之后,警告视图就会呈现模态(modal)。也就是说,它后面的屏幕内容会变暗,同时,用户无法操作程序里面除UIAlertView之外的部分。等用户通过点击某个按钮(通常是OK或Cancel)对UIAIertView做出确认之后,这个模态视图就消失了。此时,系统会把控制权交给UIAIertView的委托,使开发者可以在其中完成收尾工作,并对用户所选的按钮做出响应。
UIAIertView的各项属性在创建之后依然可以修改。你可通过修改title或messaqe属性来定制它。message是一段可选的文本,它会出现在UIAlertView的title之下、按钮之上。经由addButt。nwithTitle:方法,还可以再添加一些按钮。
3.1.4各种UIAlertView
开发者可以通过alertViewStyle属性创建不同样式的UIAlertView。按默认样式(也就是UIAIertViewStyleDefault)创建出来的UIAlertView具备标题及信息文本,另外还可以有一些按钮,其效果如图3—1所示。这是UIAlertView系列中的基本款式,开发者能够由此征询用户的意见,而用户则可以通过点击Yes/No、Cancel/OK等按钮做出简单的选择。
iOS还提供了三种样式,它们专门针对需要输入文本的场合:
UIAlertViewStylePlainTextInput——用户可以在这种样式的UIAlertView里输入文本。
UIAlertViewStyleSecureTextInput——假如要考虑安全问题,那么可以采用这种样式
的UIAIertView,它会把用户键入的文本自动遮盖起来。文本将会以一系列大圆点
的形式来显示,而开发者则可以在委托的回调方法中编写代码,读取用户输入的内容。
……
前言/序言

欢迎阅读本书新版!

自苹果公司发行iOS移动操作系统以来,iOS 7的变革是最为重大的。这本教程将会指导各位开发者针对这个新发布的优秀操作系统来制作应用程序。2013年的全球软件开发者年会(Worldwide Developers Conference,WWDC)公布了一些新的特性和视觉范式,而本书这次修订已经将它们全都涵盖在内了,笔者将会向你演示如何将其融入自己的应用程序里。

发行团队将这次修订过的Cookbook材料分成两本书来印刷,以控制每本书的篇幅。本书的英文书名叫作《The Core iOS Developer’s Cookbook》,讲述了日常开发所需的关键知识,介绍了使用标准API与界面元件来创建iOS应用程序时所需用到的类。同时,本书以“解决方案”的形式讲解创建移动应用程序时所需的图像、触摸及视图等技术。

另外一本书的英文名叫作《Learning iOS Development: A Hands-on Guide to the Fundamentals of iOS Programming》,其中包含了一些入门知识,相当于老版本Cookbook的前面几章。该书适合想要从头学习iOS 7基础知识的开发者阅读。《Learning iOS Development》讲述了Objective-C编程语言、Xcode开发环境以及与调试和部署有关的内容,你可以通过它学会如何使用苹果公司的开发工具套件。

学习本书所需的材料和知识想开发iOS应用程序,肯定得有一台测试应用程序用的iOS设备,而且最好是一台新款的iPhone或iPad。下面列出阅读本书所需的材料和基础知识:

苹果公司的iOS SDK——你可以从苹果公司的iOS Dev Center(https://developer.apple.com/ios)下载最新版的iOS SDK。如果打算在App Store上发售应用程序,那么还必须成为付费的iOS开发者。个人开发者每年需要付款99美元,企业开发者每年需要付款299美元。注册成为付费开发者之后,就会收到一份证书,开发者可以用这份证书来签署应用程序,并将其下载到iPhone、iPod touch或iPad中进行测试与调试,此外,付费开发者还可以提前获得预览版的iOS系统。未付费的开发者可以在Mac系统的模拟器上测试软件,但是不能将其部署到设备中,也不能将其提交到App Store。

运行Mac OS X Mountain Lion(v 10.8)系统的新款Mac,如果装的是Mac OS X Mavericks(v 10.9)系统就更好——你需要为软件开发留出足够的磁盘空间,而且应该尽可能把Mac的RAM装配得大一些。

iOS设备——尽管iOS SDK里的模拟器也能用来测试应用程序,但是开发者仍然需要一台iOS硬件设备,以便针对iOS平台做开发。你可以把iOS设备与电脑相连,并把自己构建的软件装上去。在开发真实的App Store程序时,应该准备数款硬件和固件各不相同的设备,以便在目标用户可能会用到的各种平台上进行测试。

因特网连接——连上网之后,就可以测试应用程序在使用WiFi和使用移动数据网络时的效果了。

熟悉Objective-C——要想编写iPhone程序,需要了解Objective-C 2.0。这是一门基于ANSI C的语言,并且带有面向对象扩展,也就是说,你需要了解一点C语言的知识。如果原来用Java或C++写过程序,而且又熟悉C语言,那么应该能够迅速适应Objective-C。

学习Mac/iOS开发的路线图一本书不可能把各类读者所需的全部知识都囊括其中。假如两位作者把你所需的全部内容都写到这本书里,那它会重到根本拿不起来。实际上,想要开发Mac及iOS平台上的程序,需要学习很多内容。如果你刚处于起步阶段,而且没有写过程序,那么首先应该学习一门大学水平的C语言课程。大部分编程语言都以C语言为根基,对于想要成为开发者的人来说,自然也要从C语言学起。

学会C语言及编译器(基础的C语言课程会讲到它)的用法之后,剩下的事情就简单多了。此时可以直接跳到Objective-C语言,学习如何用它来编程,同时还可以学习Cocoa框架。图1是一张流程图,里面列出了培生教育出版集团所出版的一些关键书籍,它们可以帮助你成为一名熟练的iOS开发者。

了解C语言之后,就可以通过多种方式来学习Objective-C编程了。如果想深入了解Objective-C,那么可以阅读苹果公司自编的文档,也可以翻看下列Objective-C教材:

《Objective-C Programming: The Big Nerd Ranch Guide》,第2版,Aaron Hillegass与Mikey Ward著(Big Nerd Ranch,2013年)《Learning Objective-C 2.0: A Hands-on Guide to Objective-C for Mac and iOS Developers》,第2版,Robert Clair著(Addison-Wesley,2012年)《Programming in Objective-C 2.0》,第6版,Stephen Kochan著(Addison-Wesley,2012年)图1成为iOS开发者的路线图学会编程语言之后,接下来应该学习Cocoa(适用于Mac开发)、Cocoa Touch(适用于iOS开发)以及开发工具,这个开发工具指的就是Xcode。这一阶段也有几种不同的学习途径。你依然可以在苹果Developer查阅苹果公司自编的Cocoa、Cocoa Touch及Xcode文档(网址是:developer.apple.com),也可以通过阅读书籍来学习它们。笔者推荐两本经典的教材:《iOS Programming: The Big Nerd Ranch Guide》第2版与《Cocoa Programming for Mac OS X》第4版,前者是Aaron Hillegass与人合著的,后者是他自己写的,Aaron Hillegass是美国亚特兰大Big Nerd Ranch公司的创始人。Mac开发圈内的人士非常欣赏Aaron所写的书,而且cocoa-dev邮件列表里面的人也最爱推荐他的书。

.市面上还有非常多的书籍可供选择,包括由Dave Mark、Jack Nutting、Jeff LaMarche及Fredrik Olsson所著的畅销书《Beginning iOS 6 Development》(Apress,2011年)。如果你完全是个编程新手,那么可以看看Tim Isted写的《Beginning Mac Programming》(Pragmatic Programmers,2011年)。不要只看一本书,也不要只看一家出版社的书。和不同的开发者交流,可以学到更多的知识,同理,通过阅读多本书籍,你也可以学到更多的技巧和窍门。

若想真正掌握Mac或iOS开发,还需通过各种渠道学习:看书、看博客、看邮件列表、看苹果公司自编的开发文档,而且最好能参加开发者会议。如果有机会参与WWDC的话,你就会明白开发者都在讨论些什么内容。对于真正想学好编程的开发者来说,在开发者会议上花些时间和别人交流是件非常值得的事情(在参加WWDC时,请和苹果公司的工程师交流一下)。

本书结构本书以解决方案的形式逐个讲解iOS开发新手经常遇到的各种问题,比方说:排布界面元件、响应用户、访问本地数据源、连接Internet等。相关的一组任务会放到同一章里面,这样读者就可以直接找到问题的解决办法,而不用再去想解决该问题所需使用的类或框架了。

本书范例代码可供你随手剪切并粘贴,也就是说,书中每个解决方案里面的源代码都可以复用到你自己的应用程序里,你只需按照自己程序的需求来调整即可。

下面简述每章内容。

第1章,手势与触摸——在iOS程序中,触摸是一种非常重要的手段,用户可以由此来传达对应用程序所做的操作。触摸并不局限于按下按钮及通过键盘交互这两种行为。本章将介绍直接操纵界面、多点触摸以及其他一些内容。你将会学到如何创建这样一种视图:用户可以在屏幕上试验各种手势,并看到不同手势之间的区别。另外,本章还会告诉你如何创建自定义的手势识别器。

第2章,构建并使用控件——本章将深入讲解如何操控应用程序。你将会详细了解控件的运作机制,还能学会以多种方式来构建并自定义控件。这一章包含很多解决方案,有的比较简单,有的比较复杂,你可以把它们复用到自己的程序里。

第3章,提醒用户——iOS提供了多种在屏幕上向用户显示信息的方式,比如弹出式对话框、进度条、本机通知(local notification)、popover和audio ping等。本章将会讲解如何在应用程序中实现这些信息通知手段,以帮助读者用更多的方式向用户显示信息。本章将介绍这些类的基本使用方法,另外还会提供一些解决方案,使你可以通过基于块的API(blocks-based API)来轻松地处理与警示信息有关的交互操作。

第4章,编排视图及其动画效果——UIView类及其子类可用来填充iOS设备的屏幕。本章将会从头开始讲解视图。与视图有关的解决方案会分别演示如何获取视图对象、如何制作视图的动画效果以及如何操纵视图对象。你将会学到怎样构建、检视及分解视图层级,并了解多个视图是如何组织起来的。通过学习本章,你会发现在图形界面中创建并摆放视图的时候,视图位置的排布是非常重要的,另外,你还会学到如何制作视图在屏幕上移动和切换时所具备的动画效果。

第5章,视图的约束系统——Auto Layout机制彻底改变了iOS程序里视图的排布方式。苹果公司的这种布局特性使开发者可以轻松地设计出更为协调一致的界面。此特性对于同一系列不同屏幕大小、不同界面、不同屏幕方向、不同语言的设备来说尤为重要。本章将会介绍如何用代码来做视图约束方面的开发。你会学到怎样在屏幕上的物件之间创建关系以及怎样指定布局规则,使iOS能够自动排布应用程序中的视图。看完本章后,你就能设定一套健全的屏幕布局规则了。

第6章,文本输入——本章的解决方案都与文本有关,这些解决方案能够解决许多问题。你会学到如何控制键盘、如何使屏幕上面的控件支持文本输入、如何扫描文本、如何格式化文本,等等。这一章会把与iOS程序文本处理有关的各项技术都涵盖在内,包括文本框、文本视图以及iOS内置的拼写检查器。

第7章,使用视图控制器——本章将会讲解各种视图控制器类的用法,这些类使得用户可以在更大的范围中与应用程序交互,而开发者也可以借此来排布视图。你将通过本章的各解决方案学到页面视图控制器、分栏视图控制器、导航控制器等视图控制器的用法。

第8章,常用的控制器——iOS SDK里面有很多系统自带的控制器,开发者可以用它们来完成日常的开发任务。本章将介绍最为常用的控制器。你会学到如何从照片库中选取照片、如何拍照、如何录制并编辑视频。另外,你还会学到如何在程序中编写电子邮件及文本消息,以及如何在Twitter及Facebook等社交媒体上张贴信息。

第9章,创建并管理表格视图——表格(table)是一种可以滚动的交互类,它在屏幕较小的设备上面效果很好,在屏幕较大的平板电脑上面效果也很不错。由于表格可以把内容以一种简单而自然的方式组织起来,所以很多iOS应用程序都是以表格为中心的。本章将介绍表格的用法,解释表格的工作原理,讲解可供开发者使用的各种表格,并且告诉你如何在程序中利用表格的各种特性。

第10章,集合视图——集合(collection)视图的许多概念都与表格相同,但是功能更加强大,而且更加灵活。本章将会讲述使用集合视图所需的各种基础知识,包括如何创建可以横向滚动的列表、如何创建网格布局、如何创建圆形等特殊方式的布局,等等。你将学到怎样通过布局规格(layout specification)把视觉效果集成到集合视图里面,以及怎样使集合视图中的内容在滚动之后自动调整位置,另外,你还会学到如何利用内置的动画支持来创建出最有效的互动效果。

第11章,分享文档与数据——在iOS系统中,应用程序可以分享信息和数据,另外,开发者也可以使用系统所提供的许多特性,把控制权从一个程序转移到另一个程序。你可以用本章所介绍的几种方式在应用程序之间分享文档及数据。你将学到如何把这些特性添加到自己的应用程序之中,以及如何灵巧地使用分享功能,令自己的应用程序可以和iOS生态系统里的其他程序协同运作。

第12章,浅谈Core Data——Core Data提供了一套受托管的数据存储机制,使开发者可以在应用程序中查询并更新存储区里的数据。它提供了一套基于Cocoa Touch的对象接口,使得iOS开发者能够像使用SQL查询语句那样,通过Objective-C代码来管理关系型数据库中的数据。本章介绍Core Data。通过其中的各解决方案,你可以初步了解这项技术,同时还能以本章内容为出发点,继续深入学习Core Data。你将学到如何设计受托管的数据库存储机制、如何添加和删除数据、如何用代码查询数据,以及如何把这些操作同UIKit中的表格视图及集合视图相集成。

第13章,网络编程基础——在连接到Internet的设备上面,特别适合用iOS程序来订阅基于网络的服务。苹果公司为iOS平台提供了各种坚实的网络计算服务及支持技术。本章将介绍网络编程中的常用技术,同时也提供一些解决方案,用来简化日常的网络开发任务。本章介绍iOS 7新引入的HTTP系统,并且提供实现数据下载功能(包括后台下载)所用的一些范例代码。你还会学到如何判断网络是否可用,以及如何使用Web服务,这其中包含了一些范例代码,它们告诉你如何通过XML解析及JSON序列化来访问一些在线服务。

第14章,针对特定设备的开发——每台iOS设备都有许多属性,有些属性是该设备所独有的,而有些则是许多设备所共有的;有些属性是持续变化的,而有些则保持不变。这些属性包括设备当前的物理方向、型号名称、电池状态以及是否可以访问机体内的硬件等。本章将会讲解如何查看设备的硬件规格,以及如何查看设备中可供使用的感应器。这一章所提供的解决方案可用来查询当前设备的各项信息。

第15章,辅助功能——本章简单地介绍VoiceOver这项辅助功能,开发者可以通过该功能尽量扩大应用程序的受众。你将学到如何为应用程序添加与辅助功能有关的标签及提示,以及如何在模拟器和iOS设备中测试这些特性。

附录A,Objective-C字面量——本附录介绍了Objective-C语言里与数字、数组及字典有关的一些新特性。

对范例代码的说明为了大家学起来方便,本书的范例代码只使用一个main.m文件。编写iPhone或Cocoa应用程序时,开发者一般都不会这么做,而且说实在的,也确实不应该这么做,但是,这种做法却非常适合展示一个大的概念。假如一份范例代码分成5个、7个或9个文件,就不太容易讲述这个概念了。而将所有代码都写到一个文件里,则有助于专门把这个概念说清楚。

书中的范例代码不应该当成独立的应用程序来用。每份范例代码只对应于一个解决方案,而且只演示一个概念。每个main.m文件都是专门为了实现某个中心概念而编写的。读者在学会这些思路之后,可以按照平常开发时所用的文件组织结构及布局方式将其转换为普通的应用程序结构。本书所用的代码组织方式与日常开发中所应提倡的标准组织方式并不相符。笔者之所以采用这种方式,是为了提供精确的解决方案,而大家可以根据需求把它们集成到自己的工作项目中。

苹果公司的标准范例代码与本书不同,你必须查看很多源文件,才能在脑中构建出一套与待演示的概念有关的“思维模型”。那些范例代码都是完整的应用程序,里面通常会涉及一些与当前所要解决的问题没有关系的任务。我们必须花很大精力才能找到与当前问题有关的代码,这是得不偿失的。

本书还有些范例代码没有遵循“一个文件只说一件事”的规则:如果某个解决方案与类的实现有关,那么本书还会提供标准的类文件及头文件。有些解决方案并不是为了强调某项技术,而是为了提供某些类及category(category是一种针对现有类所做的扩展,它不产生新的类)的实现。对于这些解决方案来说,读者可以找到单独的.m与.h文件,而main.m文件里面则封装了一份框架代码,用来描述其余的事情。

本书大多数范例代码都只使用一个应用程序标识符,也就是com.sadun.helloworld。只使用一个标识符的好处是:你的iOS设备里不会装很多范例程序。每安装一个范例程序,都会把前面那个替换掉,这样的话,设备的主屏幕就能干净一些。如果需要同时安装多个范例程序,那么只需给标识符加个后缀就可以了,例如com.sadun.helloworld.table-edits。如果想令多个应用程序所显示出来的名称各不相同,那么可以编辑自定义的显示名称。你的Team Provisioning Profile能够匹配包括com.sadun.helloworld在内的每一个应用程序标识符。这样的话,无须修改标识符,就可以把编译后的代码安装到设备上面了,只是记得要在每个项目的Build Settings中更新Code Signing Identity。

获取范例代码你可以在开源项目托管网站GitHub中找到本书源代码。每一章的源代码都放在一个文件夹内,其中包含书里的相关范例材料。解决方案的编号与其在书中的编号相同。比方说,第5章的第6个解决方案放在C05文件夹下面的06子文件夹中。

以00为编号的项目或是编号带有后缀(例如05b、02c)的项目是为了便于搜索或创建插图而使用的素材。比方说,第9章的00 – Cell Types项目是为了创建图9-2中的效果而编写的,那张图用来演示系统所提供的各种表格视图单元格样式。一般情况下,笔者会把这些多余的项目删掉。本书初稿的读者请求笔者把它们放在这个版本中。整个代码库里大约能找到六七个这样的范例项目。

为本书出力范例代码绝不是一成不变的,它会随着苹果公司的SDK与Cocoa Touch库而不断进化。请各位读者一起参与这个过程。你可以提交bug修复和修改书中的错误,也可以扩充现有的代码。你可以对GitHub代码库做分支(fork),自己调整代码,实现一些功能,然后再分享回主代码库里。如果你有新的想法或思路,请告诉我们。我们很乐意将你的宝贵建议加到代码库中,并据此完善本书的下一个版本。

获取git工具你可以使用git版本控制系统来下载本书源代码。Xcode 5集成开发环境提供了非常健壮的git支持。Xcode 5工具箱里面也包含了命令行式的git工具。此外,还有大量的第三方及商业版git工具可供选择。

使用GitHubGitHub是最大的git托管网站,有超过15万个公开的代码库(repository)。它可以免费托管公开项目,也可以付费托管私有项目。该网站提供了一套可以自定义的Web界面,其中包含Wiki托管、问题追踪等功能,是项目开发者之间的一个优秀的社交网络,开发者可以在这里寻找新代码,也可以协同开发既有的程序库。你可以在GitHub网站注册免费账号,注册好之后,就可以复制并修改本书的范例代码库了,另外,也可以创建自己的开源iOS项目,并与他人分享。




规格参数

品牌 京东图书
品牌属地 中国
ISBN 9787111491859
著者 [美]Erica Sadun,Rich Wardwell
出版社 机械工业出版社
印刷时间 2013-04-01
用纸 胶版纸
包装 平装
出版时间 2013-04-01
页数 539
译者 爱飞翔
版次 1

免责声明

产品价格、包装、规格等信息如有调整,恕不另行通知。我们尽量做到及时更新产品信息,但请以收到实物为准。使用产品前,请始终阅读产品随附的标签、警告及说明。

查看详情
加入收藏
{{ $isZh ? coupon.coupon_name_sub : coupon.coupon_ename_sub | formatCurrency }}
{{__("Buy Directly")}} {{ itemCurrency }}{{ item.directly_price }}
数量
{{ quantity }}
{{ instockMsg }}
{{ limitText }}
{{buttonTypePin == 3 ? __("Scan to view more PinGo") : __("Scan to start")}}
由 京东图书 销售
送至
{{ __("Ship to United States only") }}
满$69免运费
正品保证

已加入购物车

继续逛逛

为你推荐

{{ item.brand_name }}

{{ item.item_name }}

{{ item.currency }}{{ item.market_price }}

{{ item.currency }}{{ item.unit_price }}

{{ item.currency }}{{ item.unit_price }}

优惠券

{{ coupon.coupon_name_new | formatCurrency }}
领取 已领取 已领完
{{ getCouponDescStr(coupon) }}
{{ coupon.use_time_desc }}
即将过期: {{ formatTime(coupon.use_end_time) }}

分享给好友

取消

亚米礼卡专享价

使用礼卡支付即可获得礼卡专享价

规则说明

礼卡专享价是部分商品拥有的特殊优惠价格;

购买礼卡专享价商品时,若在结算时使用电子礼卡抵扣支付,且礼卡余额足够支付订单中所有礼卡专享价商品的专享价总和,则可以启用礼卡专享价;

不使用礼卡支付,或礼卡余额不满足上一条所述要求时,将无法启用礼卡专享价,按照普通售价计算,但您仍然可以购买这些商品;

在购买礼卡专享价商品时,若余额不足,可以在购物车或结算页中点击“充值”按钮对礼卡进行购买和充值;

商品若拥有礼卡专享价,会显示“专享”的特殊价格标记;

如有疑问,请随时联系客服;

礼卡专享价相关规则最终解释权归亚米所有。

由 亚米 销售

服务保障

Yami 满$49免运费
Yami 无忧退换
Yami 从美国发货

配送信息

  • 美国

    标准配送 $5.99(不包含阿拉斯加,夏威夷),最终价满$49免运费

    本地配送$5.99(加州,纽约州,新泽西,麻省和宾夕法尼亚,以上州部分地区);最终价满$49免运费

    两日达(包含阿拉斯加夏威夷)运费$19.99起

退换政策

亚米网希望为我们的客户提供最优秀的售后服务,让所有人都能放心在亚米购物。亚米自营商品在满足退换货条件的情况下,可在收到包裹的30天之内退换商品(食品因商品质量问题7天内可退换;为了确保每位客户都能获得安全和高质量的商品,对于美妆类产品,一经开封或使用即不提供退款或退货服务,质量问题除外;其他特殊商品需联系客服咨询)。
感谢您的理解和支持。

查看详情

由 亚米 销售

亚米电子礼品卡使用规则

若购买时选择自动充值,订单完成后礼卡将自动充值到您的账户中;

若购买时选择发送邮件,订单完成后系统将自动发送卡号和密码到您填写的邮箱;

发送邮件时,任何用户均可使用邮件中的卡号密码进行礼卡充值,请妥善保管邮件信息。

如接收邮件遇到问题,请联系客服处理;

发送邮件时,若礼卡没有被兑换,可以补发邮件。若已经被其他用户兑换,则无法补偿;

亚米网电子礼卡可用于购买自营或第三方商品;

亚米网电子礼卡没有有效期限制,长期有效;

亚米网电子礼卡的金额,可分多次使用;

亚米网电子礼卡业务规则,最终解释权归亚米网所有。

退换政策

已消费的电子礼卡不支持退款。

京东图书 销售

服务保障

Yami 满$49免运费
Yami 最优售后
Yami 美国本土发货

配送信息

  • 美国

    标准配送 $5.99(不包含阿拉斯加,夏威夷),最终价满$49免运费

    本地配送$5.99(加州,纽约州,新泽西,麻省和宾夕法尼亚,以上州部分地区);最终价满$49免运费

    两日达(包含阿拉斯加夏威夷)运费$19.99起

退换政策

提供30天内退还保障。产品需全新未使用原包装内,并附有购买凭据。产品质量问题、或错发漏发等,由商家造成的失误,将进行补发,或退款处理。其它原因需退货费用由客户自行承担。

由 京东图书 销售

服务保障

Yami 跨店满$69免运费
Yami 30天退换保障

亚米-中国集运仓

由亚米从中国精选并集合各大优秀店铺的商品至亚米中国整合中心,合并包裹后将一次合包跨国邮寄至您的地址。跨店铺包邮门槛低至$69。您将在多商家集合提供的广泛选品中选购商品,轻松享受跨店铺包邮后的低邮费。

退换政策

提供30天内退换保障。产品需在全新未使用的原包装内,并附有购买凭据。产品质量问题、错发、或漏发等由商家造成的失误,将进行退款处理。其它原因造成的退换货邮费客户将需要自行承担。由于所有商品均长途跋涉,偶有简易外包压磨等但不涉及内部质量问题者,不予退换。

配送信息

亚米中国集运 Consolidated Shipping 运费$9.99(订单满$69 包邮)

下单后2个工作日中国商家发货,所有包裹抵达亚米中国整合中心(除特别情况及中国境内个别法定节假日外)会合并包裹后通过UPS发往美国。UPS从中国发货后到美国境内的平均时间为10个工作日左右,根据直发单号可随时跟踪查询。受疫情影响,目前物流可能延迟5天左右。包裹需要客人签收。如未签收,客人须承担包裹丢失风险。

由 京东图书 销售

服务保障

满$69免运费
正品保证

配送信息

Yami Consolidated Shipping 运费$9.99(订单满$69包邮)


下单后1-2个工作日内发货。 物流时效预计7-15个工作日。 如遇清关,交货时间将延长3-7天。 最终收货日期以邮政公司信息为准。

积分规则

不参加任何折扣活动以及亚米会员积分制度。

退换政策

提供30天内退还保障。产品需全新未使用原包装内,并附有购买凭据。产品质量问题、或错发漏发等,由商家造成的失误,将进行补发,或退款处理。其它原因需退货费用由客户自行承担。

Yami

下载亚米应用

返回顶部

为你推荐

品牌故事

京东图书

为您推荐

Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折
Yami
欣葉
2种选择
欣叶 御大福 芋头麻薯 180g

周销量 600+

$1.66 $1.99 83折

评论{{'('+ commentList.posts_count + ')'}}

分享你的感受,帮助更多用户做出选择。

写评论
{{ totalRating }} 写评论
  • {{i}}星

    {{i}}星

    {{ parseInt(commentRatingList[i]) }}%

Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}收起

{{ strLimit(comment,800) }}查看全部

Show Original

{{ comment.content }}

Yami
查看更多

{{ formatTime(comment.in_dtm) }} 已购买 {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}
Yami Yami
{{ comment.user_name }}

{{ showTranslate(comment) }}收起

{{ strLimit(comment,800) }}查看全部

Show Original

{{ comment.content }}

Yami
查看更多

{{ formatTime(comment.in_dtm) }} 已购买 {{groupData}}

{{ comment.likes_count }} {{ comment.likes_count }} {{ comment.reply_count }} {{comment.in_user==uid ? __('Delete') : __('Report')}}

暂无符合条件的评论

评论详情

Yami Yami

{{ showTranslate(commentDetails) }}收起

{{ strLimit(commentDetails,800) }}查看全部

Show Original

{{ commentDetails.content }}

Yami
查看更多

{{ formatTime(commentDetails.in_dtm) }} 已购买 {{groupData}}

{{ commentDetails.likes_count }} {{ commentDetails.likes_count }} {{ commentDetails.reply_count }} {{commentDetails.in_user==uid ? __('Delete') : __('Report')}}

请输入内容

回复{{'(' + replyList.length + ')'}}

Yami Yami

{{ showTranslate(reply) }}收起

{{ strLimit(reply,800) }}查看全部

Show Original

{{ reply.reply_content }}

{{ formatTime(reply.reply_in_dtm) }}

{{ reply.reply_likes_count }} {{ reply.reply_likes_count }} {{ reply.reply_reply_count }} {{reply.reply_in_user==uid ? __('Delete') : __('Report')}}

请输入内容

取消

End

发表评论
商品评分

请输入评论

  • 一个好的昵称,会让你的评论更受欢迎!
  • 修改了这里的昵称,个人资料中的昵称也将被修改。
感谢你的评论
你的好评可以帮助我们的社区发现更好的亚洲商品。

举报

取消

确认删除该评论吗?

取消

历史浏览

品牌故事

京东图书