天天看點

《深入淺出iPhone/iPad開發(第2版)》——替換按鍵的文本

本節書摘來自異步社群《深入淺出iphone/ipad開發(第2版)》一書中的替換按鍵的文本,作者 【美】dan pilone , tracey pilone,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

替換按鍵的文本

深入淺出iphone/ipad開發(第2版)

你知道,按鍵需要一個ibaction去響應按鍵按下,是以,我們在實作檔案中編寫按鍵應該怎麼做。但是按鍵應該怎麼做呢?

我們需要去替換按鍵中的文本來提供一個答案。是以,這意味着我們需要一些方式達到傳回“out”到界面,并改變标簽的文本。我們将使用一個iboutlet來實作。

《深入淺出iPhone/iPad開發(第2版)》——替換按鍵的文本

ibactions和iboutlets是對了解如何使用控件來工作的關鍵,我們将在下一章中對它們進行細緻的讨論。目前,隻要記住動作用于在界面中對事件做出反應,出口用于從代碼中彈出以改變界面。

這裡沒有愚蠢的問題

問:如果我不在.h檔案中實作一切會發生什麼?

答:在編譯時,xcode會抱怨。它将檢查你是否完全實作了在相關頭檔案中聲明的類。如果它認為并非如此,你就會被給予一個警告,告訴你所發生的。如果你需要該代碼去支援什麼别的事情,那麼它将在運作時崩潰。

問:架構究竟是什麼?它們與庫是同一個東西嗎?

答:它們真的很相似。它們在共享、編譯代碼方面都很像庫,但是它們還可以與圖檔、頭檔案、文檔等進行綁定。

問:我必須要使用界面建構器建立我的視圖嗎?

答:不用。你可以做任何你想要做的事情,無論是在界面建構器中,還是在代碼中(等等一些)。然而,使用界面建構器并不是意味着你就不能使用代碼來完成一些事情。由于界面建構器會為你提供更好的圖形化的方式設計你的視圖,大多數的應用程式至少都有一些自己的ui内置在界面建構器中,然後再将代碼加入或者調整。

問:我必須用objective-c編寫我的應用程式嗎?

答:早期版本的ios開發協定需要為一切将通過itunes app store進行釋出的應用程式使用objective-c。蘋果公司後來放寬了這一要求,開放使用其他工具或語言的可能性。盡管如此,幾乎所有關于ios的開發,都會假設你使用的是objective-c。所有的基本架構都用objective-c編寫(或者編寫用來為它工作),文檔和示例代碼使用它,而工具套件圍繞它建立。基本上,如果你想要認真編寫原生應用程式,你最好還是學習objective-c,并開始用它編寫代碼。

問:我能将我編寫的應用程式給我的朋友們嗎?

答:能也不能。首先,如果你想要将應用程式放入任何人的真實裝置上(包括你自己的),你需要注冊付費蘋果ios開發項目。一旦你這麼做了,就可以注冊最多100部裝置,并安裝你的應用程式到它們之上。然而,以這樣的方式去獲得你的應用程式并不是很棒的方式,因為蘋果公司限制了你通過這種方式最多能夠注冊的裝置數量。它對于測試你的應用程式很好,但并不是與别人分享你的應用程式的很好的方式。

最好的方式是送出你的應用程式到itunes app store。你可以選擇以免費或者付費的方式釋出你的應用程式,但是通過itunes app store釋出,你将讓你的應用程式面向全世界(而且可能還可以掙些錢!)。我們将在本書的稍後部分更多地讨論釋出應用程式的内容。

最後,還有一種企業版開發項目你可以加入,讓你可以不使用app store而在内部釋出應用程式。這種方式有用,但是會比普通項目花費更多。

問:我必須使用ide嗎?我真的是一名指令行開發者。

答:從技術上講,不用,你沒必要使用xcodeaide進行直接開發。然而,ide使ios開發變得如此簡單,你真的應該問問自己,你有什麼更好的理由不用它,特别是它在真實裝置或者模拟器上測試與xcode的結合是如此緊密。這本書使用的xcodeaide同蘋果其他開發工具一樣,而且我們鼓勵你至少在放棄它們之前嘗試一下。對于自動化建構的事物或者自動化測試,sdk伴随的指令行建立工具叫做xcodebuild,它可以像xcode那樣建立你的應用程式,但是你很可能仍然希望用xcode來進行實際開發。

問:我能夠為iphone開發一款應用程式,然後再為其他手機(如windowsamobile或者android手機)重新建構這個應用程式嗎?

答:一個詞,不能。當你為iphone開發時,你使用的是蘋果的ios架構,如cocoa touch,以及objective-c等,而這些都不能用在其他裝置上。

《深入淺出iPhone/iPad開發(第2版)》——替換按鍵的文本

下面是當按鍵被點選時的代碼。添加粗體顯示的代碼到idecideviewcontroller.h和idecideviewcontroller.m檔案中。我們建立3樣東西:uilabel屬性,用于回應按鍵按下的ibaction,以及用于當按鍵被按下後改變标簽的iboutlet。

《深入淺出iPhone/iPad開發(第2版)》——替換按鍵的文本

這裡的代碼從之前idecideviewcontroller.h和idecideviewcontroller.m的完整檔案中得來。

《深入淺出iPhone/iPad開發(第2版)》——替換按鍵的文本

繼續閱讀