之前已經折騰過用Xcode開發OS X的程序了,現在繼續折騰,用iOS SDK開發移動設備(iphone/ipad/ipod touch)的程序。
1.從iOS Developer Library中找到了Start Developing iOS Apps Today,所以就跟着教程去試試。
2.從教程中才知道,原來移動設備,是包括這三個:iPad, iPhone, and iPod touch
教程中也說了,會涉及到Xcode+iOS SDK,Objective-C,Cocoa Touch Framework,如何建一個iOS的app並且在設備上測試,以及如何提交app到App Store。
另外,關於是否需要注冊成為Apple開發者:
寫app和在模擬器上測app,是不需要的;但是想要在設備上測app和發布app則是需要的。
3.安裝教程提示,去Your First iOS App學習學習。
創建新項目,選擇Single View Application:
其中,另外幾個Template,教程解釋道:
Master-Detail創建出來的程序就像Mail;
Tabbed創建出來的就像iTunes;
然后設置項目名字和配置:
然后選擇一個地方存放你的項目,以及對於那個source repository不要選,然后就打開了項目了:
汗,好像寫錯項目名了,寫成HelloWord了。。。
無所謂,繼續。
暫時不需要Utility Area,所以去關閉該窗口:
然后點擊Run,就可以看到iPhone模擬器出現了:
然后驗證可以運行了,先退出iOS模擬器:
當前的Supporting Files中的main.m為:
相應的info list文件為:
storyboard為:
然后再打開Utility->Attributes inspector:
按照教程去看,差點沒看懂,差點沒找到找到如何打開background配置界面的。
后來還是自己摸索出來的,先點擊View Controller下面的View,然后右邊的Attribute inspector自動就打開了配置界面了:
然后才看懂教程,原來最開始是要選擇View的。。
然后就可以點擊Background的那個白色長方形,在彈出的顏色設置中,設置自己所要的背景色了:
然后運行看看效果:
然后按照教程,在恢復回白色:
然后再運行一下,看看效果,順帶同時保持了你當前的設置。
然后接着去添加Text Field:
拖動放到View中,然后再通過View Controller->View->Text Field選中后,用鼠標拖動至合適的位置,比如:
再在placeholder中輸入名字,再去設置對齊:
然后再把Label:
按照同樣方法添加到View中:
再添加button:
然后命名為Hello:
然后去配置好Text Field:
然后運行試試效果。
點擊按鈕,是可以高亮的:
點擊到Text Field可以調出鍵盤:
如教程所說,暫時沒實現功能呢,所以暫時無法關閉鍵盤。
然后再按照教程,確保當前選中的是MainStoryboard.storyboard
然后,此時是可以看到對應的界面的,然后我這里右邊會顯示出CRLViewControl.h文件,而不是.m文件,而直接點擊左邊的CRLViewControl.m文件的話,此時Hello的界面沒了,會變成CRLViewControl.m的內容,所以不是所想要的。
后來經過折騰發現,原來是在右邊,顯示了CRLViewControl.h的上面,點擊圖標,可以看到,有CRLViewControl.h和CRLViewControl.m兩個,選擇CRLViewControl.m:
即可出現對應的.m的內容,此時就可以繼續操作了:
然后配置好connection:
然后點擊Connet,然后會看到一個灰色的小圓點,移動上去,會看到Hello按鈕顯示出提示:
繼續去添加Outlet:
然后填入參數,配置好:
教程提到了,現在編譯器會自己給accessor methods做synthesize,所以不用再加@synthesize
了。
同樣的,也去給label建立關聯:
然后打開Utility,關閉Assistant,點擊到Connections inspector,就可以看到各個連接關系了。
鼠標移動上去,就可以顯示出來關系:
其實,就類似於VS 2010中,建立控件,比如label時,你所設置label的名字,而mac卻把這label空間本身和其源文件.m中的變量,割裂開來,然后另外再手動建立兩者的聯系罷了。
再去設置Text Field的delegate:
不過話說,目前為止,好像還是不是很清楚這個delegate的作用。。。
選擇Outlets中的delegate后,變為:
教程也說了,其實這些內容,都是可以手動去寫代碼的,只是讓Xcode幫你自動生成,會減少你的代碼輸入量而已。
(也減少可能的由於筆誤而造成的錯誤)
去Run了下,結果和之前一樣,點擊按鈕會高亮,點擊text field會調出鍵盤輸入。
接着就是寫代碼了。
在CRLViewController.h添加了property
在CRLViewController.m中去實現對應的changeGreeting。
抄寫代碼過程中還覺得很奇怪,為何不直接使用textField.text而還要新建一個NSString來存放字符串。
看了后面教程的解釋,才知道,原來是Mac中的model object決定的:
app的數據,是不應該讓UI部分的東西來存放的,即此處app的將要顯示的text內容,應該自己建一個NSString來保存,而不應該用textField的text部分來保存其要處理(要顯示)的數據。
然后繼續按照提示,添加delegate代碼,最后Run成功如下:
至此,終於完成第一個iOS的app了。
雖然不是全懂,但是大概明白流程了。
from :http://www.crifan.com/develop_application_for_iphone_using_ios_sdk_xcode/