自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iPhone應(yīng)用程序 Say Hello實(shí)例操作 (上篇)

移動(dòng)開(kāi)發(fā) iOS
本文介紹的是iPhone應(yīng)用程序 Say Hello實(shí)例操作,以圖文的形式為友們介紹,剛方便與操作學(xué)習(xí),我們先來(lái)看內(nèi)容。

iPhone應(yīng)用程序 Say Hello實(shí)例操作是本文要介紹的內(nèi)容,整個(gè)實(shí)例操作過(guò)程分為三個(gè)章節(jié)為友們介紹,本節(jié)主要介紹了需求分析,模型、視圖、 控制器的等一些內(nèi)容,我們先來(lái)看詳細(xì)內(nèi)容。

項(xiàng)目需求

寫(xiě)一個(gè)iPhone應(yīng)用程序,要求可以輸入名字,點(diǎn)擊按鈕后,會(huì)顯示一段文字向輸入的名字打招呼,例如輸入“寶玉”,顯示“你好,寶玉!”

需求分析

這是一個(gè)很簡(jiǎn)單的應(yīng)用程序,包含一個(gè)文本輸入框,一個(gè)文本顯示框,一個(gè)按鈕。輸入名字到文本輸入框,再點(diǎn)擊按鈕,這時(shí)文本顯示框的文字就會(huì)變成“你好,<名字>!”。但是要注意,如果用戶輸入為空,要有警告提示用戶重新輸入;如果用戶輸入文字太長(zhǎng),超過(guò)16個(gè)字符,要自動(dòng)截?cái)唷?/p>

產(chǎn)品設(shè)計(jì)

根據(jù)項(xiàng)目需求,畫(huà)出相應(yīng)的產(chǎn)品原型圖:

初始狀態(tài)

初始時(shí),文本輸入框?yàn)榭眨秋@示水印,提醒用戶可以輸入姓名。文本顯示框文字為空。

iPhone應(yīng)用程序 Say Hello實(shí)例操作

輸入名字并點(diǎn)擊按鈕后

輸入名字,并點(diǎn)擊按鈕后,屏幕中間顯示文字:“您好,<名字>!”。

iPhone應(yīng)用程序 Say Hello實(shí)例操作

沒(méi)有輸入名字的警告提示

如果沒(méi)有輸入名字,點(diǎn)擊按鈕后彈出警告窗口,提醒用戶輸入名字。

iPhone應(yīng)用程序 Say Hello實(shí)例操作

系統(tǒng)分析

這是一個(gè)非常簡(jiǎn)單的應(yīng)用程序,實(shí)現(xiàn)思路不不算復(fù)雜:

一個(gè)文本輸入框,用來(lái)輸入文字,需要限制***字符長(zhǎng)度為16個(gè)字符,輸入框沒(méi)有內(nèi)容時(shí),顯示水印文字。UITextField控件正好可以滿足需求。

一個(gè)文本顯示框,用來(lái)顯示最終生成的文字。使用UILabel控件即可滿足需求。

一個(gè)按鈕,點(diǎn)擊后,獲取文本輸入框文字內(nèi)容,生成“你好,<名字>!”文字,并顯示在文本顯示框中。如果點(diǎn)擊時(shí)文本輸入框文字為空,彈出警告提示框。

同時(shí),這個(gè)應(yīng)用程序在開(kāi)發(fā)過(guò)程中,需要應(yīng)用到iPhone開(kāi)發(fā)中一些常用的設(shè)計(jì)模式:

委托(Delegate)

模型 視圖 控制器(MVC)

目標(biāo) - 動(dòng)作(Target-Action)

委托(Delegate)

委托模式是一個(gè)對(duì)象周期性地向被指定為其委托的另一個(gè)對(duì)象發(fā)送消息,向其請(qǐng)求輸入或者通知某件事情正在發(fā)生。該模式可替換類繼承來(lái)對(duì)可復(fù)用對(duì)象的功能進(jìn)行擴(kuò)展。

在本項(xiàng)目中,應(yīng)用程序?qū)ο髸?huì)向其委托發(fā)送消息,通知它主要的啟動(dòng)例程已經(jīng)完成并且定制的配置可開(kāi)始執(zhí)行。為了建立并管理視圖,委托會(huì)創(chuàng)建一個(gè)控制器實(shí)例。另外,當(dāng)用戶點(diǎn)擊Return按鍵后,文本字段也會(huì)通知它的委托(即所創(chuàng)建的控制器對(duì)象)

委托方法通常會(huì)集中在一起形成一份協(xié)議。 一份協(xié)議基本上就是一個(gè)方法的列表。如果一個(gè)類遵循某個(gè)協(xié)議,則它要保證實(shí)現(xiàn)協(xié)議所要求的方法(有些方法可選擇實(shí)現(xiàn)與否)。委托協(xié)議規(guī)定了一個(gè)對(duì)象可以發(fā)送給委托的所有消息。例如常見(jiàn)的有:UITextFieldDelegate, UIApplicationDelegate, UIScrollViewDelegate, UITableViewDelegate, UIWebViewDelegate。

iPhone應(yīng)用程序 Say Hello實(shí)例操作

模型 視圖 控制器(MVC)

MVC模式將應(yīng)用程序中的對(duì)象設(shè)定為三種角色:模型角色(Model)、視圖角色(View)和控制器角色(Controller)。

模型對(duì)象(Model)表示數(shù)據(jù)。例如,在iPhone自帶的通訊錄應(yīng)用中,聯(lián)系人是模型對(duì)象,在一個(gè)繪畫(huà)應(yīng)用中,圓形、矩形是模型對(duì)象。

本項(xiàng)目的應(yīng)用程序用到的數(shù)據(jù)非常簡(jiǎn)單——字符串,并且該字符串只有在按鈕點(diǎn)擊的方法中用到。其實(shí)換一種角度來(lái)說(shuō),字符串也是一種最簡(jiǎn)單的模型對(duì)象,在其他的應(yīng)用程序中,模型對(duì)象將會(huì)更加復(fù)雜,并且模型對(duì)象在程序中無(wú)處不在,可以在多個(gè)地方進(jìn)行訪問(wèn)。

視圖對(duì)象(View)負(fù)責(zé)顯示數(shù)據(jù),比如UILabel可以顯示文本、UIImageView可以顯示圖片,也會(huì)支持用戶對(duì)數(shù)據(jù)的編輯操作,例如UITextField可以支持用戶輸入。

在我們接下來(lái)要?jiǎng)?chuàng)建的項(xiàng)目中,需要一個(gè)主視圖來(lái)包含其它幾個(gè)視圖——首先是一個(gè)文本輸入框,它用于捕獲用戶輸入信息;然后是一個(gè)文本顯示框,它用于顯示文本,而文本內(nèi)容則是基于用戶的輸入;另外還需要一個(gè)按鍵,讓用戶可以點(diǎn)擊它,點(diǎn)擊后通知文本字段更新。

控制器對(duì)象(Controller)介于模型和視圖之間。

在我們接下來(lái)要?jiǎng)?chuàng)建的項(xiàng)目中,當(dāng)用戶點(diǎn)擊按鈕后,觸發(fā)更新操作,控制器對(duì)象將會(huì)從文本輸入框中獲取輸入的文字內(nèi)容,并把文字存放在一個(gè)字符串中,然后再把文本顯示框的內(nèi)容更新成格式化好的內(nèi)容。

iPhone應(yīng)用程序 Say Hello實(shí)例操作

結(jié)合MVC模式,對(duì)于本項(xiàng)目的主要流程,整個(gè)如圖所示:

iPhone應(yīng)用程序 Say Hello實(shí)例操作

目標(biāo) - 動(dòng)作(Target - Action)

目標(biāo)-動(dòng)作機(jī)制,允許一個(gè)控件對(duì)象(例如按鍵或滑動(dòng)條) 向另外一個(gè)對(duì)象發(fā)送一條消息(即動(dòng)作),以之作為對(duì)某個(gè)用戶事件(例如一個(gè)點(diǎn)擊事件)的響應(yīng)。接收到消息的對(duì)象則可以對(duì)消息進(jìn)行響應(yīng),并針對(duì)業(yè)務(wù)要求做出處理。

在本項(xiàng)目中,當(dāng)點(diǎn)擊按鈕時(shí),它會(huì)通知控制器去獲取文本輸入框內(nèi)容,并根據(jù)輸入內(nèi)容更新文本顯示框。

iPhone應(yīng)用程序 Say Hello實(shí)例操作

開(kāi)發(fā)

創(chuàng)建項(xiàng)目

我們將開(kāi)始使用Xcode來(lái)創(chuàng)建項(xiàng)目,啟動(dòng)Xcode(缺省情況下,Xcode位于 /Developer/Applications 里面),然后選擇File > New > New Project,這樣就可以創(chuàng)建一個(gè)新的工程。應(yīng)該可以看到一個(gè)新的窗口,如下圖所示:

iPhone應(yīng)用程序 Say Hello實(shí)例操作

選中 Window-Based Application 并點(diǎn)擊 Next 按鈕,輸入Product Name(項(xiàng)目名):SayHello,在Company Identifier那,可以輸入公司名唯一標(biāo)識(shí)。

iPhone應(yīng)用程序 Say Hello實(shí)例操作

點(diǎn)擊Next,選擇項(xiàng)目存儲(chǔ)位置,***點(diǎn)擊Create按鈕。

完成上述步驟后,將看到如下的新項(xiàng)目窗口:

iPhone應(yīng)用程序 Say Hello實(shí)例操作

在進(jìn)行下一步工作之前,可以先編譯運(yùn)行一下程序,這樣就可以通過(guò)模擬器看到程序運(yùn)行后的樣子。在Xcode的菜單中選擇 Product > Run 或者點(diǎn)擊左上角工具欄上的 Run 按鈕,iPhone模擬器應(yīng)該會(huì)自動(dòng)啟動(dòng)。當(dāng)應(yīng)用程序啟動(dòng)后,可以看到一個(gè)白色屏幕。

應(yīng)用程序啟動(dòng)過(guò)程解析

通過(guò)Xcode的模板創(chuàng)建項(xiàng)目時(shí),模板已經(jīng)幫助設(shè)置好了應(yīng)用程序基本程序環(huán)境,它會(huì)幫助創(chuàng)建一個(gè)應(yīng)用程序?qū)ο?,將?yīng)用程序和窗口連接起來(lái),建立一個(gè)運(yùn)行環(huán)境。整個(gè)啟動(dòng)過(guò)程從UIApplicationMain函數(shù)開(kāi)始,如下圖所示:

iPhone應(yīng)用程序 Say Hello實(shí)例操作

main.m文件中的main函數(shù)會(huì)調(diào)用UIApplicationMain函數(shù):

  1. int retVal = UIApplicationMain(argc, argv, nil, nil);  

該函數(shù)將會(huì)創(chuàng)建一個(gè)UIApplicaion類的實(shí)例。同時(shí)它會(huì)搜索應(yīng)用程序的Info.plist屬性列表文件。 Info.plist文件是一部字典,它主要包含諸如應(yīng)用程序名稱、圖標(biāo)這樣的信息,它也包含應(yīng)用程序?qū)ο髴?yīng)該加載的nib 文件(雖然該文件的擴(kuò)展名為“xib”,但是我們習(xí)慣稱之為“nib 文件”)的名稱。Nib文件主要有用戶界面的信息。本項(xiàng)目的Info.plist文件具有下面的內(nèi)容:

iPhone應(yīng)用程序 Say Hello實(shí)例操作

術(shù)語(yǔ): 雖然Interface Builder文檔的擴(kuò)展名可能是“.xib” ,但歷史上,其擴(kuò)展名是“.nib”(“NextStep Interface Builder”的首字母縮寫(xiě)),因此人們就俗稱其為“Nib文件”。

這表明應(yīng)用程序啟動(dòng)時(shí)將會(huì)加載MainWindow nib文件。在Xcode中可以單擊MainWindow.xib進(jìn)行查看(注意在Xcode4中已經(jīng)不需要通過(guò)Interface Builder來(lái)打開(kāi)nib文件,可以直接在Xcode對(duì)nib文件進(jìn)行查看和編輯):

iPhone應(yīng)用程序 Say Hello實(shí)例操作

MainWindow Nib文檔包含4個(gè)對(duì)象:

File's Owner,文件擁有者代理對(duì)象,在這里MainWindow的擁有者對(duì)象時(shí)UIApplication實(shí)例

First Responder,***響應(yīng)者代理對(duì)象,在本項(xiàng)目中,沒(méi)有使用到

Say Hello App Delegate,SayHelloAppDelegate的實(shí)例,也就是應(yīng)用程序的委托

Window,一個(gè)窗口對(duì)象。它默認(rèn)是白色背景,程序啟動(dòng)時(shí)看到的就是它

應(yīng)用程序?qū)ο笤谕瓿蓡?dòng)后,會(huì)向委托發(fā)送applicationDidFinishLaunching:消息,通知程序已經(jīng)啟動(dòng)成功了,這樣我們可以在收到這個(gè)消息后根據(jù)需要進(jìn)行一些操作。下圖是一個(gè)簡(jiǎn)化的iPhone應(yīng)用程序生命周期圖,簡(jiǎn)要展示了發(fā)生在應(yīng)用程序啟動(dòng)到退出的過(guò)程。

iPhone應(yīng)用程序 Say Hello實(shí)例操作

這樣,我們基本了解了如何創(chuàng)建一個(gè)項(xiàng)目,以及一個(gè)應(yīng)用程序的啟動(dòng)過(guò)程,接下來(lái),我們需要?jiǎng)?chuàng)建一個(gè)視圖控制器(UIViewController)實(shí)例,用來(lái)實(shí)現(xiàn)項(xiàng)目功能。

小結(jié):關(guān)于iPhone應(yīng)用程序 Say Hello實(shí)例操作 (上篇)的內(nèi)容介紹完了,希望本文對(duì)你有所幫助,請(qǐng)繼續(xù)閱讀 iPhone應(yīng)用程序 Say Hello實(shí)例操作 (中篇)

責(zé)任編輯:zhaolei 來(lái)源: 博客園
相關(guān)推薦

2011-07-19 11:12:07

iPhone 控制器

2011-07-19 10:56:15

iPhone 控制器 視圖

2011-07-26 11:13:15

iPhone PXL

2011-07-26 16:43:59

iPhone Web 服務(wù)器

2011-07-26 13:23:14

iPhone 圖片 相冊(cè)

2011-07-21 10:47:37

iPhone Cocoa 委托

2011-07-19 09:46:38

2011-07-26 10:09:08

iPhone 多語(yǔ)言 國(guó)際化

2011-07-26 09:41:23

iPhone xcode Mac OS X

2010-08-27 10:41:41

iPhone核心應(yīng)用程序

2011-07-20 15:58:58

iPhone 應(yīng)用程序 生命周期

2011-07-19 14:36:32

iPhone

2011-07-27 17:30:40

iPhone Locate 定位

2011-08-12 14:54:45

iPhone委托

2011-08-05 13:49:53

iPhone 應(yīng)用 開(kāi)發(fā)

2011-07-21 15:56:32

iPhone 截屏

2011-07-06 16:25:10

iPhone 程序 調(diào)用

2011-07-05 16:59:15

Qt 動(dòng)態(tài) 鏈接庫(kù)

2011-05-19 15:19:16

2011-07-26 16:33:56

iPhone Delegate
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)