07416522_翻译译文.doc_第1页
07416522_翻译译文.doc_第2页
07416522_翻译译文.doc_第3页
07416522_翻译译文.doc_第4页
07416522_翻译译文.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

常州大学本科生毕业设计(论文)外文翻译学号:07416522常 州 大 学毕业设计(论文)外文翻译(2011届)外文题目 Introduction to the iPhone 译文题目 iPhone 说 明 书 外文出处 WowBook.Com 学 生 高 海 亮 学 院 信息科学与工程学院 专 业 班 级 计算机073 校内指导教师 苏兵 闫玉宝 专业技术职务 副研究员 教授 校外指导老师 赖芳东 专业技术职务 高级项目经理 二一一年三月第 32 页 共 33 页iPhone 说明书iPhone 是目前最有个性的游戏平台之一。她的触屏设计,iTunes影音播放器 ,用c+编程,低的开发成本,和发布模式都个她的游戏开发成为一个很有前途的机会。作为移动通讯行业的新人,iPhone 占有者引人注意的市场份额,也引起了Motorola, Samsung, 和 LG等其它品牌的争相模仿.作为一个程序员,你可能对她的售价或者所占的市场份额不太感兴趣,但是你应该对iPhone生存能力有个大致的了解,如果没有人用iPhone 就没有人下载你开发的程序。有个好的消息就是在经济低迷的2009 年,iPhone 的销售依然火爆。要开发iPhone 应用程序,你必须要先获得一个免费的 Apple 开发账号。接着就是下载一个iPhone SDK 在你的装好Xcode IDE 和 Interface Builder tool 的 Mac 上 (Apple 不提供 在Windows 或者非Mac机器机器上的开发环境)。因为 iPhone API 要求用C+开发,如果你不懂C+你需要先找一些入门的书籍看一下。下面教你一步一步地掌握 iPhone 应用程序开发。Apple 开发账号 和 开发环境的下载装iPhone 开发环境首先要注册一个 Apple 账号。注册Appple账号是免费的,账号可以让你进入苹果在线文件系统,辅导视屏,下载开发环境。1. 在地址栏输入网址 /iphone/.2. 点击注册链接,接着点击 start now. 选择 create a new AppleID ,,或者用来自 iTune或 App Store 的账号。3. 注册完以后,你可以登陆 iPhone Dev Center.4. Apple 公司可能已经把 下载链发到你的邮箱里了,通过这个链接你可以下载免费的Apple开发环境.要住一段饿是你不要单独下载技术支持,因为它包含在开发环境下载包里(技术支持的版本是随着开发环境一起的可能比其它的更新)。5. 下载完,安装开发环境,接着就安装,把Xcode 和 Interface Builder 安装在/Developer/Applications 路径下你可以为Xcode 和 Interface Builder创建一个快捷方式或者在快速启动栏创建一个启动项。那个免费的账号可以让你在Xcode 和Interface上并运行应用程序。但是作为付费程序上传你的应用程序,你仍需要为这个程序做个登记。并且需要支付一点手续费,但是即使你是个一个自由开发者,这也不会让你的钱包瘦的太快。1. 打开/iphone/program/apply.html.2. 你会有两个选择: a 标准程序 b 企业级程序。如果你为大众编写游戏,你可能不需要编写企业级的程序。如果你仔细的阅读,你可能会发现这里的企业级程序其实只是在你或你的企业内部使用的。如果你打算设计一个游戏通过App Store销售,安心选择标准程序就对了。3. 选择Enroll Now并且登陆如果有必要的话。4. 你现在公司面临另外一个选择,作为个人登记还是还是企业登记。如果你选择个人登记,你就不能选择另外一个开发人员或者测试人员加入你的开发,这个对分配开发和测试工作给其他人士很有必要的。但是,如果你选择作为公司登陆,你需要提供公司的详细信息。5. 然后,根据网站上的提示选择合适的信息,直到看到“Thank you for submitting your enrollment.”现在你需要等待来着苹果的邮件(可能需要一个月的时间)。签约付费开发软件可以让你是哦那个beta版本的iPhone OS 和SDK,但是也只有这样Apple 选择让它们可以使用。登记付费开发账号是很有好处的,他让是你需要的时候可以随时使用。应用捆绑当你用Xcode 开发一个应用程序,最终的结果叫做应用捆绑。在Mac OS 和iPhone中,一个用用捆绑是一种特别类型的目录它包括可执行文件和源文件。这也包括一个用来它的标签,这个文件还包含其它的关于应用程序信息以及程序用到的图片和声音。这个应用捆绑只是简单的以图标的形式显示,右击或者按组Ctrl单击选择在菜单上选择视图包目录看看里面有什么。 尽管你不能在iPhone上面做这些操作,但是你可以在iPhone模拟程序上看到iPhone 用应程序。如果你安装了 iPhone SDK,你可以用Spotlight 搜索 MobileSafari 文件。让它在在检影器中显示(不要尝试在你的Mac中运行它),并且查看它的包目录(其中的一些显示在接下来的列表中)。 一个典型的iPhone应用程序捆绑有以下的结构。执行部分 (必需包含部分)这个部分是编译好的可执行代码;它可能和你的应用程序包含有相同的名字。在MobileSafariapp中,这个文件名字是 MobileSafari.Info.plist(必需包含部分)这是一个树形属性的集合,这是应用程序非常重要的部分。重要的属性名单在这里使显示的,包括版本号,唯一的ID号。这个文件用的是二进制的格式所一不能再文本编辑器中编辑在,但是你可以用“/Developer/Applications/Utilities”目录下的属性编辑器去查看他们。Icon.png(必需包含部分)这是一个57*57像素的图标用来在iPhone 的主页面标示你的应用程序。平滑按钮的特性会自动被加载到这个图片上,所以这个图片应该是单色的。Various resources(可选的)所有通用资源库,比如图片,声音,二进制文件等等应用程序中用到的都将和可执行文件放在同一个文件夹下。这是目前iPheone捆绑插件的唯一的本地化的资源库子文件。Locallization folders(可选的)如果你的应用程序支持多种语言,你可能需要增加一个子文件夹,这个文件夹需要包含不同语言的编码库。这个文件的名字是一个以该种语言的名字命名的或者有ISO语言缩写以“.lproj”做结尾。比如English.lproj,French.lproj,German.lproj,and.uk.lproj 将包含各自的语言库,并且各个语言库彼此独立。Settings.bund(可选的)如果你想让你的应用程序可以为用户提供一些在程序设置时优先权选项,你需要创建一个这个文件。Icon-Settings.png(可选的)如果你添加了一个Settings:bundle 文件,这个图片是用来标示设置选项的。这个图片应该是29*20像素的MainWindow.nib(可选的)是用应用程序接口创建的,MainWindow.nib 包含代码和一些启动的时候用到的资源。有了个这文件,更多的.nib文件可以被下载,但是这个文件必须是被首先下 下来。Default.png(可选的)这个图片是用来表示这个应用程序正在下载MainWindow.nib 文件。它的像素应该是480*320的,应该是全屏幕的。当应用程序下载完毕以后图片很容易被用户看到,这个下载程序也将会花更少的时间启动。iTunesArtwork(可选的)如果你在苹果商品以外发布应用程序,当你下载应用程序到其它手持设备时需要用到这个iTunesArtwork来显示你的应用程序。在下一个部分,当你创建你的应用程序时,Xcode 和Iterface Buider 将帮你创建大多数文件。Xcode and Interface Builder如果你对Xcode不熟悉,你可能在开始的阶段,不会愿意去学习一个新的IDE。然而,对于开发iPhone工作的方式,你几乎没有别的办法来达到目的。幸运的是,一旦你熟悉了它,你就会发现Xcode做的是相当不错的。你会发现它拥有一个工业标准IDE的所有特征,如你所期待的那样。它会指出你严重失误的地方,自动实现复杂的API方法,并且能够将SDK参考整合起来。而它更大的优点是:Xcode支持on-device调试,一个全功能的iPhone模拟器,一个非常有用的工程向导,它还拥有重定向工具,它甚至直接用Subversion整合来修复控制软件库。一个Xcode项目包含所有的代码、资源、证书,还有当你建立一个iPhone应用程序时所需要的配置。你要熟悉一下环境,打开你的Xcode IDE和遵循这些步骤创造一个典型的Hello World应用程序:1. 打开你的Xcode。2. 选择File到New Project。3. 打开对话框,然后选择iPhone OS,然后在View-Based应用操作系统(详细见1-1),然后点击Choose。4. 命名这个项目为:”Hello World”,接着点击保存它。5. 在这个时候,你就能建立然后运行(在工具栏中点击Build和Go的图标)。当这个Hello World应用程序在Simulator中运行时,只会出现一个空白的灰白界面。请见描述1-2。 Figure 1-1. Selecting View-Based Application可能你发现到现在为止,很无聊对吧!在你继续编写”Hello World”这个程序之前,当你在 创建这个项目的时候,一个文件的快速纲要已经产生了:HelloWorldAppDelegate.m, HelloWorldAppDelegate.h这个类限制了那些被认为是在应用程序中主要代码入口点的文件。这个app delegate 控制了主要的窗口和主要View Controller,还有为设定他们打算的展示负责。HelloWorldViewController.m, HelloWorldViewController.h在这些文件中,这个类保存了主要的视图,它还为展示可怕而无聊的界面负责。我们将编辑对它说Hello World。Figure 1-2. Empty application in the SimulatorMainWindow.xib这个Interface Build文件产生了一个.nib文件,当这个项目结束时,这个文件将被放置在你的应用程序绑定中。而当被装载时,它将创建一个app 代表,来加载主要的窗口和View Controller。HelloWorldViewController.xib这个文件为HelloWorldViewController的视图展示了一个设计。NIB可以替代NeXTSTEP接口Builder,而XIB可以替代Xcode接口Builder。NIB文件中遍布了很多二进制文件。XIB文件是一种非常易读的XML文件。在我们提及之前,Xcode会 编译XIB文件到NIB文件中。这个XIB格式被特别的创建,通过合并在资源控制下的在项目中的NIB文件去解决问题。这样,你就能更加简单的去分散XML文件而不需要二进制文件了。现在我们需要画出Hello World文本。让我们可以进行这几个方面吧:l 通过在Hello World ViewController.m中立即编写代码,增加一个Cocoa UILable.l 在Interface Bulider中添加一个Cocoa UILable到Hello World ViewController.xib。l 定义一个UIView子类,在drawRect中使用一个Quartz字体翻译。l 在OpenGL ES中去创建一个texture-mapped字体。让我们从第一个方法:在HelloWorldView -Controller.m中通过编写代码添加一个UILabel。被命名为viewDidLoad子方法已经在HelloWorldView -Controller.m中了,这是一个很好的来增加了代码的地方。当.nib文件加载完成后,这个方法将会被调用,但是在渲染开始前:1. 在HelloWorldViewController.m中用接下来的(这个函数在默认情况下是被注释掉的,所以一定要去除/ *它前面和* /与以下的)取代viewDidLoad函数下): - (void) viewDidLoad super viewDidLoad; /draw Hello World using Cocoa UIKit. /grab the screen dimensions int w = self.view.frame.size.width; int h = self.view.frame.size.height; /create a text label: the size 100,50 here is arbitrary / but it must be large enough to fit the Hello World text. UILabel* label = UILabel alloc initWithFrame:CGRectMake(0, 0, 100, 50); /put the label at the center of the screen label.center = CGPointMake(w/2, h/2); /align the text to the center of the label (default is left) label.textAlignment = UITextAlignmentCenter; /dont draw the labels background (default is white) label.backgroundColor = UIColor clearColor; label.text = Hello world!; /add label to our view, so that it can be rendered self.view addSubview:label; /since we allocd label in this method we need to release label here label release;2. 建立并运行这个项目(如果你还没有离开模拟器的运行,你将会被提醒去停止运行)。这个应用将会展示你的文本(详见描述1-3) Figure 1-3. “Hello world!” text shown现在让我们来复习一下第二种方法,需要使用Interface Builder 来增加一个UILable 到HelloWorldViewController中。你们必须要取消你的改变,如果你跟随之前的例子的话:1在Interface Builder 中打开HelloWorldViewController文件,通过双击它,从Xcode的项目文件列表中。2双击这个View对象来开始编辑它(描述1-4)。Figure 1-4. Double-clicking the View object to edit the file3. 在Library面板中找到这个Label 对象(通过选择Tools到Library Panel,而这是在没被打开的情况下,来打开面板),见1-5;4. 拖动标签到View编辑器窗口,就像1-6显示的那样;5. 双击这个新的标签,接着编辑这个文本,说声”Hello World”。你也可以从Attribute Inspector来编辑它(Tool到Size Inspector).6. 在Label Size Inspector(Tool到Size Inspector),单击所有的Placement按钮到中心的横向和纵向的标签,像1-7显示的那样;7. 保存.xib文件,返回到Xcode.正在的建立应用程序将会更新.nib文件,当这个应用程序被运行时,这将会引起改变去出现,像1-8显示的那样;8. 当.nib文件被加载,它将会创建和展示UILabel。如果我们的代码需要进入读取或修改创造的标签,我们可以在我们的代码中链接它到IBOutlet。在HelloWorldViewController.h文件中,更换HelloWorldViewController的子定义,像接下来的那样:IBOutlet UIView* secondView;一个IBOutlet是一个代码标签,它能使界面建设者认识到在代码中可能的操作,然后去链接;Figure 1-5. Selecting Label from the Objects Library9. 去链接.nib的标签到出口,在Interface Builder中打开HelloWorldViewController.xib文件,接着打开Connections Inspector (Tools到Connections Inspector)。然后,单击去选择这个标签,拖动这个标签的New Referencing Outlet到File的Owner 对像,释放,然后单击“我的标签”文档,将会在快捷方式中展示(从1-9到1-11)。因为我们设定了Referencing Outlet,当.mib文件被装载时,这两个对象将会联系在一起。尤其是,当在应用程序中装载HelloWorldViewController.nib时,它会去设定变量myLablel到UILabel中的点上,我们只需点击就就行啦!Figure 1-6. Adding a new label to the view10. 保存HelloWorldViewController.nib,接着停止Interface Builder.现在我们可以通过myLabel将我们的代码访问这个标签了。这种连接过程经常被反复用在Interface Builder中,去指定出口、动作、代表、资料来源。在明显的接口元素之间的在任何相互作用下,你的代码将被通过Interface Builder的链接被建立。Figure 1-7. Modifying the Label object propertiesFigure 1-8. “Hello World!” text with Label objectFigure 1-9. The Label Connections windowFigure 1-10. Clicking and dragging from New Referencing Outlet to Files OwnerFigure 1-11. Selecting “myLabel” from the pop-up window视图和控件器:在iPhone SDK中,你会发现,UIView类代表了一个View对象。View作为屏幕部分的一个可见的矩形,它将处理图纸和动画,事件和对子视图的管理。如果你正在用你的iPhone查看附带的iPod应用程序,你就会注意到,它的导航条是在最上端,标签一栏是在底部的,而在它的中心位置,内容是三块分开的视图。 当你在the New Project Wizard,创建了一个视图基础的应用程序,那么你就可以从一个单独View Controller 和单独视图的创建开始了。当你发现自己的应用程序变得越来越复杂,你就需要更多放入视图来解释,和帮助自己理解了。比如,你需要创建一个你自己游戏的视图,来描述你的主要菜单,一个游戏的环境背景,和一个在线的分数显示屏幕。 如果在你的View中拥有很多相同的代码,你就能将你的视图连同分享的代码增加到的View Controller中。在之前的例子中,我们要把主菜单和环境放在相同的视图控制器中,而不要把主要的游戏状态和高分屏幕放入每个人在他们自己的视图控制器中。没有什么东西可以停止我们将他们全部放入一个视图控制器,或者为每个人分配不同的View Controller,这纯粹是对一个组织的考虑。在现有窗口内添加一个新的视图和视图控件控制器:按照如下的步骤,在现有窗口内添加一个新的视图和视图控件控制器:1. 在Xcode中,创建一个继承UIViewController的新类。我们称它为我们的TestViewController类。2. 通过选择文件到新文件的步骤来创建一个新的XIB文件,接着从User Interfaces部分选择View XIB,就像Figure 1-12描述的那样:Figure 1-12. Adding a new View XIB file3. 在Interface Builder 中,选择文件的主人图标。在Identity Inspector中,设定Class Identity 到TestViewConyroller。如果Identity Inspector窗口没有打开,你可以通过Tools到Identity Inspector的方式进入。请看描述1-13: Figure 1-13. Editing the class name4. 设定视图的界面出口到文件的主人视图,这样的方式,我们在早前的Hello Word 例子中已经使用过了。如描述1-14那样。5. 在你的代码中增加一个TestViewConyroller实例。接着将它标注为一个IBOutlet。我们将把它放入应用委派类TestAppDelegate中,在TestAppDelegate.h中,新的代码将看起来像这样: IBOutlet TestViewController* testViewController;6. 编辑你的主窗口的XIB文件,增加一个ViewController对象,将它拖出到MainWindow.xib窗口中,它是从Library窗口中分离出来的。你会发现从属于Library 下的Library里的ViewController对象。你可以点击Cocoa Touch Plugin到Controller,就像1-15 和1-16描述的那样. Figure 1-14. Linking to the Files Owner object7. 编辑这个对象来从而更改类的名字,加载NIB到“TestView -Controller”。这样做可以在Main-Window.xib窗口选择ViewController对象。从而在Identity Inspector窗口中去编辑的类名。接下来, 在同一个窗口中选择Attribute按钮,将它从Identity Inspector切换到Attributbe Inspector 。最后,在Attribute Inspector编辑NIB的名字。(见1-17 和1-18)8. 在TestAppDelegate里,将testViewControlle对象的参考出口连接到IBOutlet,这个对象是我们之前创建。见1-199. 在显示之前,你要使用接下来的代码,添加View对象到Window对象中: window addSubview:testViewController.view;10. 一旦将View视图添加到Window对象中,你就能调用来激活它了: window bringSubviewToFront: testViewController.view;Figure 1-15. Adding a View Controller from the LibraryFigure 1-16. Modifying the ViewController object值得注意的是,只有视图才能在任何时候活动,如果你去调用 bringSubviewToFront,那么当前的活动视图将会从响应器链中移除。它将不会出现在最显著的位置或者是接收输入事件中,直到你再次调用bringSubviewToFront。在现有的视图控件控制器添加一个新的视图:按照如下的步骤,在现有的视图控件控制器添加一个新的视图:1. 在Xcode 中打开一个视图控件控制器的.h文件,然后为新的视图增加一个IBOutlet指针。让我们命名他为secondView。代码如下: IBOutlet UIView* secondView;2. 在Interface Builder中,打开视图控件控制器的XIB文件窗口,从Library获取一个UIView对象,添加其中。你会发现UIView从属于Cocoa Touch Plugin-Windows,Views 和 Bars,就像Figure 1-20 显示的那样:3. 设定UIView的定位出口,连接到之前你在IBOutlet中创建的secondView上。4. 为了组织更加方便,你要在视图控件器的XIB窗口里去命名命名UIView对象。5. 改用新的View,在视图控件器中调用将会是这样: self.view = secondView; 由于在这里我们重写了视图控制器的视图属性,我们需要确保我们拥有另一个视图去参考旧的视图,万一我们想交换回去。所以我们通常把每个UIView放入自己的IBOutlet中,此外,指定初始的启动UIView到视图性质。你可以为任何UIView放置多个有参考出口,所以这个最初的视图将使出口命名为initialView和视图。Figure 1-17. Editing the class nameFigure 1-18. Editing the NIB nameFigure 1-19. Linking to TestViewControllerFigure 1-20. Adding a View object from the Library代理对象:在NIB(反病毒资讯工作室工作部)中的对象必须要去访问文件自身类中的属性。当去访问NIB之外的属性,你就需要使用代理对象了。代理都有一个相关的类名称和代理的名字,但它不产生一个实例的相关类。所以当初始化NIB文件时,你必须通过一场代理实例化自己:/Instead of auto-loading the view controller from the main window NIB,/ load it manually so that we can set up the proxy object.viewController = HelloWorldViewController alloc init;/We want viewController to be able to access IBActions in/ HelloWorldViewController and in HelloWorldAppDelegate./ The Files Owner will be the View Controller,/ and the Proxy named AppDelegate will be the app delegate self.NSDictionary* proxies = NSDictionary dictionaryWithObject:self forKey:AppDelegate; /link proxy object name to app delegate instanceNSDictionary* options = NSDictionary dictionaryWithObject:proxies forKey:UINibProxiedObjectsKey; /set up options with our proxyNSBundle mainBundle loadNibNamed:HelloWorldViewController owner:viewController options:options;下载设备:假设你已经完成注册有偿开发者项目的过程。你现在就已经被授权,你可以使用Xcode去加载装载应用程序,例如你好世界的例子到一个iPhone上。 然而,在你做到这一点之前,你必须跳过两圈。由于iPhone的是一个固定平台,所以,当你在设备里执行代码前,你很有必要去记录。你必须签署构造,苹果公司只相信真实的签名。记得,为自己签署的应用程序,去装设你所正在装载的配置。记住,你所处理的签名,证书和提供配置文件是通过在线项目门户网站到苹果网站的。一旦你成为一个有偿开发者, 你就会在/iphone/manage/overview/index.action找到它。该网站为每个section-generating逐步引导证书签署要求(csr),创造出一种分布配置文件,并且还增添了一种设备ID等等。然而,这可能是一个复杂的过程,所以我们就转变理念来理解它。授权与配置文件:如果你要将你的应用程序给电话或应用程序商店使用,你需要有两个签署的配置文件。一个是开发者配置文件,它将在你开发和测试你的应用程序时被使用。另一个是分布配置文件,当你发送已经完成的即将发表的应用程序发送到应用程序商店时,你就会使用到它。在一个公司环境中,当生产经理要追踪分布配置文件时,程序员的领导者就会去持续追踪开发者的配置文件。如果你要产生这些配置文件,你就需要得到授权,包括一个公共的和私人的钥匙来使苹果公司证明它是有效的。那么首先,你必须使用Keychain访问你的Mac创造所谓的授权,接着提交请求发送到的苹果公司的发展计划。当苹果公司进行审核和批准后,你可以下载授权,它将由苹果开发者门户网站授予。一旦你拥有了签字的证书,你将需要一个应用程序的标识符(身份证),它是一个唯一的设备标识符(UDID),还有一个WWDR证书。这个应用程序ID产生于开发者门户网站,它将被用于一个配置文件或者是作用于应用程序的绑定中。一个应用程序ID看起来像这样:com.YourGameCo.YourAwesomeGameName。这叫做反向域名表示法,在这些语言中使用包名的格式,Java和c#的程序员是很熟悉的。如果你将编写多个应用程序,你可以用一个通配符格式,这样同样的开发者也可以用一个应用程序代码来编写多个应用程序了。一个通配符应用程序身份证的样子是这样的:com.YourGameCo。*。当它们在开发者门户网站被列出,在ID前面可能会带有10个字母数字字符。当然,这些是苹果的内部使用的,所以,你可以忽视。在开发者门户网站创建了一个应用程序ID之后,你必须在你的应用程序绑定中打开Info.plist文件,然后用你的应用程序ID去替换绑定标识符关键的默认值。如果当你在开发者门户网站创建应用程序ID时使用一个通配符,那么你在更新Info.plist文件时,你要用你游戏的名字去代替星(*)号。标识符: UDID是一个带有40个字符的的十六进制字符串,你可以直接从iPhone的装置中获取。你可以附加它下载到你的Mac来运行iTunes或者是Xcode 组织者的窗口。 UDID仅用于的开发者配置文件,而对于分布的配置文件是无效的。WWDR 授权 你可以从/certificationauthority/Apple WWDRCA.cer网站上下载苹果的世界宽度的开发者关系授权(WWDR)。下载并安装授权,你就能使用它来进行授权的建立了。WWDR授权将会将你的开发的证实到Apple上,那么就为你的应用程序实现了信任链的操作了。安装配置文件: 一旦你拥有了这三样东西,你就能从Develop Portal 上去下载一个提供的配置文件了。这个文件包含了a.mobileprovision 文件名扩展。一旦你下载了这个文件,你就双击进行文件的安装了。它将会登录到Xcode的承办单位,当你连接你的iPhone到你的电脑时,它就会显示来通知你了。不过,你要确保这个配置文件是在设备安装配置文件列表中的。 记住,一个应用程序在它的开发者的配置文件中是用来限制设备的。Xcode 配置: 一旦你拥有了所有的授权,密钥和安装的配置文件。那么,你就为在你的iPhone中设定Xcode去编译一个应用程序并且将它运行起来做准备了。 首先,在计划中去设定代码签署配置文件,接着,去编辑计划的环境,建立并编码签署的身份到任何iPhone 操作系统的装置中。具体请参考描述 1-21. 不过,如果你提取的配置文件不在罗列的列表中,那么你丢失了授权链的部分了: l 私有密钥l 签署的授权l WWDR授权l 提供的配置文件你可以在提供的配置文件中去改变捆绑的标识符来匹配应用编号的名字。去收集任何Info.plist改变后的Build Clean 菜单的选项;否则这种改变将不会在创建中映射。(具体请参考描述 1-22)。为装置去建立Xcode的设定,就像描述 1-23显示的那样。如果你发现任何事物都非常顺利地进行着,那么你就可以在装置中去建立一个应用程序啦,记得将它运行起来哟。Xcode将会在你建立程序的过程中在装置中安装你应用了。相反的,如果你发现一些东西出现了错误,你将不会看到任何有用的错误信息;你将会看到“应用程序核实失败”,这就意味着,一些东西出错了。这里有一些通常出现的问题,也许也是你出错的根源吧:l 捆绑的标识符包含了typo或者是空白的部分由于那些被捆绑的标识符必须要与应用编号相匹配。所以,你必须要在修改被捆绑的授权之后选出Build 到Clean。l 丢失了部分的授权链WWDR授权是很容易丢失的。l 你的授权已经失效如果你一向工作的很好的事物突然在接近最后日期时遭遇问题了,那么,可能是你的授权已经过期了。描述 1-21.设定签署的配置文件Objective-C 入门 Iphone的应用程序界面使用的是C语言。这是一种由Smalltalk语言演变过来的语言。这个想法将一种作为工业标准的C语言与面向对象的程序设计语言相融合。这样的结果,开始可能令你很头疼,但是,一旦你理解了,你会发现他们是一些很有意思的概念。图页1 - 22。编辑应用程序ID的Info.plist图1 - 23。设置作为建设目标的策略 首先,你要明白,Objective-C 是c的超类。任何你能用C语言编写的程序,你也可以使用Objective-C编译器来实现编译。它包含了C的框架分格,函数调用,内存分配,还有指针,一切C所包含的东西。而且,,除了拥有所有正常的C语言的语法外,Objective-C还追加了一些它自身所特有的特点,比如螺纹同步,try-catch组件和垃圾回收。主要改进和增加的(使用这种语言的原因)是一个面向对象的结构。类Objective-C中的类在概念上是极其相似JAVA和C+的类的。这样的类就是一个对象,其中包含了称为成员变量的数据,和称为方法的功能。就像在JAVA和C+中,类都必须要先被定义后才可以使用(虽然在Objective-C,他们也可以被创造在运行时)。你可以使用interface关键字来定义一个类。类似于C + +,Objective-C的类都应当是定义在一个.h文件中,而当实现他们实现时,必须被分离到一个.m文件中。也与C + + 一样,你可以使用public或者private关键字指明一个语法的适用范围,从而保护以下的线。虽然Objective-C不同于C+或JAVA,然而,在它定义其在花括号中的类的外面的方法,。这些方法的都和之前的类相关联,并且以end关键字来结束。下面的代码创建了一个类名叫动物:interface Animal/ Member Variables go hereprivateint foo;/ class Methods go here, outside the braces- (int) bar: (double) input1;end 你可以注意到这种有趣的来定义方法的方式:他们开始用普通的函数(或 a+类方法,我们将予以讨论),其次为圆括号中函数的返回类型和函数名。如果函数具有参数,每个参数都以冒号,括号中的参数和参数名伴随,(除了第一个使用函数的名字而不是一个参数的名称的参数)。这是同一个类在c+中要求,注意到分号结束时:class Animal/ Member Variables and Methods go hereprivate:int foo;public:int bar( double input1 );Once more for Java:class Animal/ Member Variables and Methods go hereprivate int foo;public int bar( double input1 ) All three languages can use / for single-line comments.就像在JAVA和C+中,一个类可以延长或继承其他的类。在一个公共基类中,你会发现几乎所有Objective-C类都能继承NSObject,这个我们将会在之后解释。你还会发现,继承的语法也和C+相似,,除了Public和Private关键词不会用于修饰父类之外。interface Animal : NSObject /Objective-C inheritanceendclass Animal : public NSObject /C+ inheritance;class Animal extends NSObject /Java inheritance 值得你去注意的是,就像Java一样, Objective-C也是不能继承多重类的。假入你想创建一个既继承NSObjec,又要继承GameEventListener类的动物的类。在c+中,你可以定义GameEventListener作为一种抽象的基类继承两者。然而,在JAVA中,你必须定义GameEventListener作为接口,而在Objective-C中,你需要会把它定义为protocol。在Objective-C中,一个协议类似于抽象基类,除了在c+中,因为它必须被完全虚构。它不能有任何成员变量和实现的方法。和在JAVA中的接口一样,Objective-C中的类可能很有必要实现很多协议。 让我们看看在 C + +中实现的案例:class GameEventListener / Member Variables, Methods and Virtual Methods go hereprivate: bool active;public: bool isListening(); /returns true if active is true virtual void handleEvent( int event ) = 0;class Animal : public NSObject, public GameEventListener / Member Variables and Methods, and Override Methods go here / any pure virtual functions from GameEventListener must be implementeprivate: int foo;public: int bar( double input1 ); void handleEvent( int event ); / isListening(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论