第一章 快速引导.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第一章 快速引导

第一章 快速引导 在这一章里,你将从白手起家投入到开发你的第一个应用程序中。目标是写一个HelloArrow程序,这个程序画了一个箭头,并且根据方向的改变来旋转它。 你将用OpenGL ES API 来渲染这个箭头,但是OpenGL只是iPhone上支持的很多图形技术之一。最初,会混淆这些技术中的哪个最适合你的需求。对于哪些技术是iPhone特有的,哪些技术是Mac OS X开发中也有的,也是不那么明显的。 苹果巧妙地把所有iPhone公共API分成四层:Cocoa Touch,Media Services,Core Services,和Core OS。MAC OS X则更多了些扩展,但是它也能被粗略地划分为四层。如图1-1 在最底层,Mac OS X 和 iPhone 共享他们的kernel architecture和core operation system。这些共享的部件统称为Darwin. 虽然这两个平台有相似点,但是他们在处理OpenGL时还是有很多不同。图1-1包含了一些OpenGL相关的类,显示为粗体。在Mac OS X中的NSOpenGLView类在iPhone中不存在,同样的iPhone中的EAGLContext 和 CAEGLLayer类在Mac OS X中不存在。在这两个平台中OpenGL API本身也是非常不同的,这是因为Mac OS X 支持完整的OpenGL,而iPhone依赖于减缩的OpenGL ES. iPhone图形技术包括以下部分: Quatz 2D 渲染引擎 向量图形库支持alpha混合,层,反锯齿。它在Mac OS X上也是可用的。用Quartz 技术的应用必须引用一个framework(苹果的一项术语,代表一个相关资源和库的束)Quartz Core. Core Graphics Vanila C 对Quart的接口,在Mac OS X中也可用。 UIKit iPhone的本地窗口框架。除了其他外,UIKit包裹Quartz的基元为Objective-c类。有一个Mac OS X副本称作AppKit,它是Cocoa的一部分。 Cocoa Touch 是iPhone 编程栈中的一个概念层,它包含UIKit和一些其他的框架。 Core Animation Objective-C框架,用来实现复杂的动画。 OpeGL ES 低层硬件加速 C API 用来渲染2D或者3D图形。 EAGL 一个很小的在OpenGL ES和 UIKit之间的胶水API。一些EAGL类(比如CAEGLLayer)被定义在Quartz Core 框架中,而另外一些(比如 EAGLContext)被定义在OpenGL ES框架中。 本书主要处理OpenGL ES--前面列表中唯一不是苹果特有的技术。OpenGL ES规格被一个称作Khronos Group的财团控制。不同的OpenGL ES实现完全支持相同的Core API,使得容易写便捷式的代码。供应商能从正式定义的API扩展集中挑选,而iPhone支持这些扩展集中的相当一部分。本书我们将介绍这些扩展集中的很多部分。 过渡到APPLE技术 是的 ,你确实需要一个MAC系统来为iphone app store开发应用程序。PC背景的开发者应该没必要恐惧。我自己的经验是PC到苹果的过渡,除了最开始的对键盘的不适应外,并不算痛苦。 Xcode为Mac OS X提供了苹果首选的开发环境。如果你刚开始用XCode,它可能最开始会雷到你,因为它更像个email客户端,而不像IDE。它的布局确实非常直观;等学会快捷键后,我发现Xcode是一个高效的环境。用它工作也很有兴趣。比如,输入一个结尾定界符比如“)”之后,相应的“(”立刻高亮显示,看上去像是把它自己从屏幕中推出来一样。这个效果非常令人愉快和微妙。唯一少的是一个音效,也许苹果会在XCode下一个版本中加上。 Objective-C 现在我们来讨论一个明显而又往往又不愿谈的事物。在某一时刻,你可能听说过Objective-C在iPhone开发中是必须的。如果用到UIKit的地方不多,你实际上可以用纯C语言 或者C++语言来写程序中很多的逻辑部分。对于OpenGL开发更是如此,因为OpenGL是C API,本书大多用C++;Objective-C只用在iPhone 操作系统和OpenGL之间的桥接代码。 最初,苹果对Objective-C的使用依赖于NeXT, NeXT是Steve的另一个工作的公司。这个公司的技术在很多方面超越它的时代——可能超越过头了。NeXT没有生存下来,苹果于1997年收购了它。直到今天,在很多苹果API中你可以依然找到NS前缀,包括iPhone的API。 有些人可能会说Objective-C不像C++

文档评论(0)

jgx3536 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档