当前位置:主页 > 书籍配套资源 > Xcode配套资源
《Xcode实战:Apple平台开发实用技术、技巧及最佳流程》示例代码

《Xcode实战:Apple平台开发实用技术、技巧及最佳流程》示例代码

  • 更新:2022-03-24
  • 大小:6.25 MB
  • 类别:Xcode
  • 作者:弗里茨·安德森
  • 出版:机械工业出版社
  • 格式:PDF

  • 资源介绍
  • 相关推荐

Xcode运行于苹果公司的Mac操作系统下,是苹果公司向开发人员提供的集成开发环境,主要用于开发Mac OS X和iOS应用程序。之前基本上只有Mac OS X应用的开发才会用到Xcode,所以它一直很小众,处于默默无闻的状态。随着移动设备的普及,移动应用的开发也越来越火热,iPhone占据了智能机市场的重要地位,越来越多的开发人员开始加入iPhone应用程序开发的阵营。从Xcode 3.1开始,它也可作为iOS的开发环境,所以Xcode也随之进入了移动开发人员的日常工作中。

本书深入浅出地介绍了Xcode 6的使用,作者根据自己丰富的Apple平台开发经验,通过3个示例程序,分别介绍了命令行开发、iPhone app开发和Mac app开发的最佳流程,在这些开发流程中,详细介绍了Xcode 6的各项功能。示例程序全部用最新的Swift语言编写。通过阅读本书,你可以掌握Xcode 6的使用方法和常见功能。熟练使用Xcode 6的各项功能可以极大地提高工作效率。

自从支持iOS开发后,Xcode的更新速度也加快了许多。每次都和iOS的新版本一起发布,翻译完本书的时候,苹果公司在WWDC 2015上刚刚发布了Xcode 7。Xcode 7最大的特性就是支持Swift 2.0和可以不用加入付费开发者计划就能在真机上调试,极大地方便了开发者。而且,苹果公司在WWDC上声称之后会将Swift开源,这将会极大地促进Swift社区的发展,本书中的示例程序都用Swift语言重新编写称得上是明智之举。书中介绍的各个特性基本都适用于Xcode 7,所以读者不必担心内容过时的问题。

本书内容翔实,循序渐进,覆盖了从项目初始到项目发布流程中涉及的Xcode功能,既可以作为经验丰富的开发人员的参考手册,也可以作为新手开发人员的入门指引书籍。

鉴于译者水平有限,书中难免有差强人意的地方,欢迎广大读者批评指正。

封面图

目录

  • 译者序
  • 前言
  • 第一部分起步
  • 第1章获取Xcode2
  • 1.1开始之前2
  • 1.2安装Xcode3
  • 1.3移除Xcode4
  • 1.4Apple开发者计划5
  • 1.5下载Xcode6
  • 1.6额外需要下载的内容7
  • 1.7小结8
  • 第2章初识Xcode9
  • 2.1启动Xcode9
  • 2.2Hello World11
  • 2.2.1新建项目11
  • 2.2.2让Xcode安静下来13
  • 2.2.3构建和运行14
  • 2.2.4货真价实的程序15
  • 2.3删除项目15
  • 2.4小结15
  • 第3章简单的工作流程和被动调试16
  • 3.1创建项目16
  • 3.2构建19
  • 3.3运行21
  • 3.4简单调试22
  • 3.5小结23
  • 第4章主动调试24
  • 4.1一个简单的测试用例24
  • 4.2开始主动调试24
  • 4.2.1设置断点25
  • 4.2.2变量窗格26
  • 4.2.3 单步调试27
  • 4.3解决这个问题28
  • 4.3.1行为28
  • 4.3.2解决方法31
  • 4.4小结31
  • 第5章编译32
  • 5.1编译32
  • 5.2动态载入38
  • 5.3Xcode和Clang38
  • 5.3.1本地分析39
  • 5.3.2跨函数分析41
  • 5.3.3索引42
  • 5.4Swift43
  • 5.5编译产品47
  • 5.5.1中间产品47
  • 5.5.2预编译49
  • 5.6小结51
  • 第6章添加库target52
  • 6.1添加target52
  • 6.2target关系54
  • 6.2.1添加文件到target中54
  • 6.2.2target中的头文件56
  • 6.3从属target56
  • 6.3.1添加库57
  • 6.3.2调试依赖target59
  • 6.4小结59
  • 第7章版本控制60
  • 7.1采取控制61
  • 7.2文件状态63
  • 7.3首次提交65
  • 7.4使用远程版本库66
  • 7.4.1本地建立一个“远程”版本库68
  • 7.4.2将文件推送到远程服务器69
  • 7.5合并与冲突70
  • 7.5.1User A70
  • 7.5.2User B73
  • 7.5.3返回User A75
  • 7.6版本编辑器78
  • 7.6.1Comparison78
  • 7.6.2Blame80
  • 7.6.3Log81
  • 7.7分支81
  • 7.8小结83
  • 第二部分iOS应用程序的生命周期
  • 第8章开始制作iOS应用程序86
  • 8.1规划应用程序86
  • 8.1.1模型–视图–控制器86
  • 8.1.2模型87
  • 8.1.3 视图87
  • 8.1.4控制器88
  • 8.2开始制作一个全新的iOS项目89
  • 8.3项目中都包含什么91
  • 8.4小结93
  • 第9章iOS应用程序:模型94
  • 9.1实现模型94
  • 9.1.1实体95
  • 9.1.2属性95
  • 9.1.3关系97
  • 9.2托管对象类100
  • 9.2.1创建类——错误的方法100
  • 9.2.2为什么按照Xcode的方式做是个错误102
  • 9.2.3正确的方法——使用mogenerator102
  • 9.3准备105
  • 9.3.1Utilities105
  • 9.3.2扩展类105
  • 9.3.3passer_rating107
  • 9.4定制Core Data类108
  • 9.4.1在项目中添加Game数据108
  • 9.4.2在项目中添加Passer数据109
  • 9.4.3一些测试数据110
  • 9.4.4源代码控制和产品文件112
  • 9.5让模型更容易调试114
  • 9.6小结115
  • 第10章iOS应用程序:控制器116
  • 10.1Objective-C中的符号重命名116
  • 10.1.1重构Objective-C方法名117
  • 10.1.2重构类名117
  • 10.2在Swift中重命名类118
  • 10.3编辑View Controller119
  • 10.3.1表视图120
  • 10.3.2构建Passer List121
  • 10.3.3新建Passer121
  • 10.4生命周期问题及处理方法122
  • 10.5真正的Passer Rating123
  • 10.5.1另外一个bug123
  • 10.5.2运行Passer Rating127
  • 10.6小结128
  • 第11章构建新视图129
  • 11.1下一个视图控制器129
  • 11.1.1如果想要添加新视图控制器129
  • 11.1.2storyboard、scene和segue130
  • 11.2创建视图133
  • 11.2.1Passing中的Outlet和Assistant134
  • 11.2.2Billboard视图136
  • 11.2.3链接视图与视图控制器137
  • 11.2.4 特定场合下的自动布局138
  • 11.2.5 各种标签140
  • 11.2.6清理142
  • 11.3表视图144
  • 11.4outlet145
  • 11.4.1连接outlet146
  • 11.4.2检查连接147
  • 11.4.3连接GameListController148
  • 11.4.4代码补全和片段149
  • 11.4.5代码片段150
  • 11.5测试Billboard View152
  • 11.6小结153
  • 第12章新视图的自动布局154
  • 12.1为什么选择自动布局154
  • 12.1.1Autoresizing的局限155
  • 12.1.2Auto Layout155
  • 12.1.3需要牢记的问题155
  • 12.2重新制作Player Billboard156
  • 12.3重构子视图布局157
  • 12.3.1Playground158
  • 12.3.2StatView160
  • 12.3.3安装StatView164
  • 12.4设计约束165
  • 12.5两行、两个标签167
  • 12.6实际的约束169
  • 12.6.1默认(Any/Any)170
  • 12.6.2Any Height(非Compact)170
  • 12.6.3Landscape(wAny/hCompact)171
  • 12.6.4解决问题171
  • 12.6.5细节修改171
  • 12.7小结172
  • 第13章添加表格单元格173
  • 13.1Game表173
  • 13.1.1Table View中的outlet173
  • 13.1.2添加所需的Protocol方法174
  • 13.1.3添加Model-to-View的支持175
  • 13.1.4原型元素176
  • 13.2Game Table:第一次运行177
  • 13.3自定义表格单元格179
  • 13.4添加一些图形182
  • 13.4.1带有图片的单元格182
  • 13.4.2将Image视图与图片联系在一起182
  • 13.4.3 Assets目录183
  • 13.4.4向Assets Catalog中添加图片184
  • 13.4.5图标和启动图片186
  • 13.5小结188
  • 第14章添加编辑器189
  • 14.1计划189
  • 14.2添加模型场景189
  • 14.2.1嵌入的View Controller191
  • 14.2.2将Passer List与Editor相连193
  • 14.2.3Static Table Cells194
  • 14.3编辑器视图控制器195
  • 14.3.1编辑器表195
  • 14.3.2将数据传递给编辑器197
  • 14.3.3从编辑器中获得数据198
  • 14.4segue200
  • 14.5小结201
  • 第15章单元测试202
  • 15.1Test Navigator203
  • 15.2测试CSV Reader204
  • 15.2.1CSV 测试代码205
  • 15.2.2测试数据209
  • 15.2.3运行测试程序210
  • 15.3测试和调试器211
  • 15.4添加测试类213
  • 15.5异步测试216
  • 15.5.1测试异步代码217
  • 15.5.2文档217
  • 15.6XCTest断言218
  • 15.6.1简单测试218
  • 15.6.2等价219
  • 15.6.3异常219
  • 15.7小结220
  • 第16章度量和分析221
  • 16.1速度221
  • 16.1.1Debug 调试器222
  • 16.1.2Instruments224
  • 16.2XCTest和性能231
  • 16.3内存232
  • 16.4小结233
  • 第17章iOS扩展234
  • 17.1添加Today Target235
  • 17.2设计挂件235
  • 17.3框架内的共享库239
  • 17.4Today扩展244
  • 17.5构建依赖247
  • 17.6结果248
  • 17.7小结248
  • 第18章配置249
  • 18.1Apple开发者计划249
  • 18.1.1通用(App Store)计划250
  • 18.1.2企业计划250
  • 18.2iOS的配置251
  • 18.2.1你会看到什么251
  • 18.2.2注册你的App253
  • 18.2.3保护资源254
  • 18.2.4提交iOS应用程序255
  • 18.3 功能编辑器257
  • 18.3.1OS X独有的功能257
  • 18.3.2iOS和OS X中都有的功能257
  • 18.3.3iOS功能258
  • 18.4OS X沙箱259
  • 18.4.1为什么要选择沙箱261
  • 18.4.2 沙箱的缺点261
  • 18.5Gatekeeper 和Developer ID262
  • 18.5.1获取Developer ID262
  • 18.5.2使用 Developer ID263
  • 18.5.3限制264
  • 18.6发布构建264
  • 18.6.1基本的构建设置265
  • 18.6.2调整构建设置265
  • 18.6.3构建267
  • 18.7小结268
  • 第三部分Mac OSX开发中的Xcode
  • 第19章开始制作OS X应用程序270
  • 19.1目标270
  • 19.2开始271
  • 19.3模型274
  • 19.3.1从iOS移植274
  • 19.3.2添加实体275
  • 19.4制作菜单278
  • 19.4.1Target/Action279
  • 19.4.2First Responder280
  • 19.4.3将数据载入LeagueDocument281
  • 19.4.4适应托管文档281
  • 19.4.5测试命令283
  • 19.4.6为League 数据确定一个类型284
  • 19.4.7确定App如何处理League文件285
  • 19.4.8应用程序和文档图标286
  • 19.5小结 287
  • 第20章绑定:连接OS X 应用程序288
  • 20.1OS X中的Storyboard Segue288
  • 20.2构建文档窗口290
  • 20.2.1载入窗口290
  • 20.2.2表视图291
  • 20.3填充表——绑定294
  • 20.3.1对象控制器294
  • 20.3.2将表绑定到Team296
  • 20.3.3将列绑定到Team属性297
  • 20.4League文档数据的结构299
  • 20.4.1从League表到Source List299
  • 20.4.2捕获Team的选择301
  • 20.4.3从Team到表303
  • 20.4.4Passer部分304
  • 20.5小结311
  • 第21章本地化312
  • 21.1本地化的工作原理312
  • 21.2添加本地化313
  • 21.2.1Base Localization313
  • 21.2.2为什么需要 Base Localization314
  • 21.3哪些需要本地化315
  • 21.3.1游戏细节视图:布局315
  • 21.3.2游戏细节视图:代码317
  • 21.3.3模块和命名空间319
  • 21.4法语本地化320
  • 21.4.1添加语言环境320
  • 21.4.2由简入繁:Credits.rtf323
  • 21.4.3本地化Main.storyboard325
  • 21.4.4本地化资源328
  • 21.4.5本地化程序字符串329
  • 21.4.6genstrings330
  • 21.4.7xliff文件331
  • 21.4.8其他332
  • 21.5本地化系统字符串332
  • 21.6小结334
  • 第22章程序包335
  • 22.1简单的包:RTFD335
  • 22.2bundle336
  • 22.3应用程序的bundle337
  • 22.4Info.plist File338
  • 22.5Info.plist中用于应用程序的键340
  • 22.5.1用于iOS和OS X的键340
  • 22.5.2OS X中使用的键342
  • 22.5.3iOS中使用的键345
  • 22.6小结347
  • 第23章属性列表348
  • 23.1属性列表数据类型348
  • 23.2编辑属性列表350
  • 23.2.1属性列表编辑器352
  • 23.2.2为什么不使用属性列表编辑器356
  • 23.3其他格式358
  • 23.3.1文本属性列表358
  • 23.3.2二进制属性列表359
  • 23.3.3JSON360
  • 23.4特殊的属性列表361
  • 23.5小结362
  • 第四部分Xcode任务集
  • 第24章Xcode中的文档364
  • 24.1Quick Help364
  • 24.1.1Inspector364
  • 24.1.2弹出窗口365
  • 24.2快速打开366
  • 24.3帮助367
  • 24.4文档窗口368
  • 24.4.1侧边导航栏368
  • 24.4.2侧边栏的内容表368
  • 24.4.3类信息368
  • 24.4.4查找和导航369
  • 24.5保持同步371
  • 24.6自定义的Quick Help373
  • 24.6.1C语言系列的文档373
  • 24.6.2Doxygen375
  • 24.6.3运行Doxygen380
  • 24.6.4安装文档集合380
  • 24.7Swift和reStructuredText381
  • 24.8小结383
  • 第25章Xcode构建系统384
  • 25.1Xcode如何组织构建过程384
  • 25.2构建变量387
  • 25.3设置的层级388
  • 25.4编辑构建变量389
  • 25.5配置390
  • 25.6配置文件392
  • 25.6.1创建配置文件392
  • 25.6.2SDK和指定的架构设置393
  • 25.6.3预处理xcconfig文件393
  • 25.7命令行工具394
  • 25.7.1xcodebuild394
  • 25.7.2xcode-select395
  • 25.7.3xcrun396
  • 25.8自定义构建规则397
  • 25.9构建日志398
  • 25.10简单的构建记录400
  • 25.11小结408
  • 第26章Instruments409
  • 26.1Instruments是什么409
  • 26.2运行Instruments410
  • 26.3记录文档窗口411
  • 26.3.1工具栏412
  • 26.3.2记录区域414
  • 26.3.3Detail区域415
  • 26.3.4Extended Detail区域415
  • 26.3.5库418
  • 26.4追踪419
  • 26.4.1记录419
  • 26.4.2保存和重新打开422
  • 26.4.3不启动instrument记录422
  • 26.5Instruments422
  • 26.5.1Behavior423
  • 26.5.2Core Data423
  • 26.5.3Dispatch423
  • 26.5.4Filesystem423
  • 26.5.5Graphics424
  • 26.5.6Input/Output424
  • 26.5.7Master Tracks424
  • 26.5.8Memory425
  • 26.5.9系统425
  • 26.5.10System-iOS Energy Instruments427
  • 26.5.11线程/锁427
  • 26.5.12记录428
  • 26.5.13UI Automation428
  • 26.5.14用户界面428
  • 26.6自定义Instruments429
  • 26.7模板430
  • 26.7.1全部平台430
  • 26.7.2仅限iOS430
  • 26.7.3仅限Mac431
  • 26.8小结431
  • 第27章调试432
  • 27.1Scheme选项432
  • 27.1.1Info432
  • 27.1.2参数433
  • 27.1.3选项433
  • 27.1.4诊断435
  • 27.2使用断点做更多的工作435
  • 27.3视图层级437
  • 27.4lldb命令行439
  • 27.5小技巧441
  • 27.6小结444
  • 第28章零散的知识445
  • 28.1技巧445
  • 28.1.1一般技巧445
  • 28.1.2代码折叠449
  • 28.1.3Assistant编辑器450
  • 28.1.4Instruments和调试452
  • 28.1.5构建452
  • 28.2陷阱454
  • 第五部分附录
  • 附录A一些构建变量460
  • 附录B资源474

资源下载

资源下载地址1:https://pan.baidu.com/s/1dPlUnfr0wCi0jzTrRFHzLA

相关资源

网友留言