你的第一个iphone程序(翻译)

通过阅读本文您将发现编辑iphone程序很简单。

有点击率的话将连载。

本文为工作翻译请勿转载。

本文原版权归www.apple.com所有。

 

 

教程预览和设计类型

本章提供了你将要创建的应用程序的视图和你要用到的设计类型(design pattern)。

教程预览

在本教程中,你将创建一个非常简单的应用程序。它有个文本框(text field),一个静态框(label)和一个按钮。你可以输入你的名字到文本框,然后按下按钮然后静态框将为被更新显示“Hello<Name>”:

效果图

尽管这是一个非常简单的程序,它介绍了iPhone开发环境底层使用Cocoa Touchd的基本的设计类、工具和技术。Cocoa TouchUIKit和基本框架(Foundation framework)组成,它提供了在iPhone系统(iPhone OS)中进行绘图和基于事件驱动的操作会用到的基本的工具和用法。它还包括了几个其他的框架,提供了访问设备属性的关键服务,例如获取用户的操作。要了解更多关于Cocao Touch和它在iPhone系统中的适用范围,参见:iPhone OS Technology Overview。你要用到的主要的类型见本文的“Design Pattern”。

在本教程中很少考虑到用户的界面。然而,界面是一个成功的iPhone程序要具备的关键的因素。你应该阅读iPhone Human Interface Guidelines 并且研究基于本教程的样例(HelloWorldClassic)来理解怎样能将用户界面改进成一个完善的程序。

你也将开始理解视图控制器(View controller)如何工作和它们怎样融合到一个iPhone程序中。

设计类型

如果你还没有设计过,你应该确定你读过文档Cocoa Fundamentals Guide中的设计类型章节,不过你要用到的主要类型是:

代理(Delegation

对象模型 视图 控制器(Model View Controller

目标对象响应(Target-Action

此处有这些类型和他们将在程序里面的用法的快速预览。

代理(Delegation

代理是一种类型,在这里一个对象可能会发送消息给另一个对象代理时内容进一步理解??就已经确定了要求指定的服务或简单地通知代理一个事件正在发生。你用它来选择性地继承重用对象的扩展功能。需要进一步理解??

在本程序中,程序对告诉它的代理主程序启动已经结束以及自定义操作可以开始了理解??。对本程序,你想要代理创建一个控制器的实例来启动和操作视图(you want the delegate to create an instance of a controller to set up and manage the view)。另外,当用户按下了返回键,文本框将告诉它的代理(在这种情况下应该是同一个控制器)。

代理方法通常被集中放到一个协议(protocol)中。一个协议主要是一个方法(method)列表。如果一个类遵守一个协议,它保证它能够满足一个协议中指定的方法(有时可能是可选的)。代理协议包含了一个对象可能发送给它的代理的所有的消息。要了解更多关于协议以及协议在Objective-C中担当的角色,参见The Objective-C 2.0 Programming Language中的协议章节。

对象模型-视图-控制器(Model-View-Controller

对象模型-视图-控制器(或“MVC”)设计类型表示了应用程序中涉及到的3中类型。

Model 对象代表数据,例如游戏中的太空船和火箭,生产中的ToDo itemsContacts,或者画图操作中的圆形和方形。

在本程序中,数据将会很简单只是个字符串并且它实际上不会在一个单独的method外边被使用,因此严格地说它是可有可无的。尽管如此,从理论的角度上看它还是很重要的。在其他的程序中model将会变的很复杂,并且在很多地方都会被用到。

View 对象知道如何显示数据并且可能允许用户编辑数据。

在本程序中你需要一个主要的view来包含几个其他的view—一个文本框来获取用户输入的信息,另一个文本框来显示用户输入的内容和一个按钮让用户告诉我们什么时候第二个文本框应该被更新。

Controller 对象在modelview之间进行协调。

在本程序中,controller对象将从输入文本框中获取数据,将它存在一个string中,并且在适当的时机更新第二个文本框。按钮发送的操作信息将会启动更新操作。

目标对象响应Target-Action

目标对象响应机制允许一个control对象例如按钮或者滑动条响应一个用户事件(如单击或者双击(tap))然后发送一个消息(或操作)给另一个能够解释并且根据消息执行特定操作的对象(目标对象)。

在本程序中,如果被双击(tap),按钮告诉controller根据用户的输入更新它的modelview

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值