### iphone開發概述
沙盒機制( sandbox)
ios 中的沙盒機制( sandbox) 是一種安全體系,它規定了應用程式只能在為該應用程式建立的資料夾內讀取檔案,不可以訪問其他地方的內容.所有的非**檔案都儲存在這個地方,比如、聲音、屬性列表和文字檔案等。 每乙個應用程式都在自己的沙盒內 不能隨意跨越自己的沙盒去訪問別人的沙盒的內容 應用程式向外請求或者接收資料都需要經過許可權認證
應用程式的五種狀態
not runing( 未執行) 程式沒啟動 inactive (未啟用) 程式在前台執行,不過沒有接收到事件.在沒有事件處理情況下程式通常停留在這個狀態 active (啟用) 程式在前台執行而且接收到了事件.這也是前台的乙個正常的模式 background (後台) 程式在後台而且能執行**,大多數程式進入這個狀態後會在這個狀態上停留一會. 時間到了之後會進入掛起狀態( suspended). 有的程式經過特殊的請求後可以長期處於 background 狀態. suspended (掛起) 程式在後台不能執行**.系統會自動把程式變成這個狀態而且不會再發出通知.當掛起時,程式還是停留在記憶體中的,當程式記憶體
應用狀態的生命週期
ios 載入 app 將要結束時並且 app 程式差不多已經準備好執行的時候會呼叫這個方法,通常我們需要使用這個方法來完成 app 的初始化和最後設定的一些微調.這個方法呼叫發生在 app 的 window 和 ui 之前.
- (bool)application:(uiapplication *)application didfinishlanunchingwithoption:(nsdictionary *)launchoptions當應用程式將要進入非活動狀態執行,在此期間,應用程式不接受訊息或事件,比如說來**了、鎖屏。通常在這個方法裡實現: 停止 timer 和其他週期性的任務、停止任何正在執行的請求、暫停**的**、如果是遊戲就暫停它、減少opengl es的幀率、颳起任何分發的佇列和不重要的操作佇列(你可以處理網路請求或者其他時間敏感的後台任務).
- (void)appliwillresignactive:(uiapplication *)application當應用進入活動狀態執行,這個狀態剛好和上面的那個方法相反,需要實現任務的重新開始,比如說重新開始 timer, 繼續分發佇列,提高 opengl es 的幀率.不過遊戲要回到暫停狀態,不能自動開始.
- (void)applicationdidbecamactive:(uiapplication *)appliction當程式被推送到後台的時候呼叫.所以要設定後台繼續執行,則在這個函式裡面設定即可.在這個方法需要實現:儲存使用者資料或狀態資訊,所有沒有寫到磁碟的檔案或資訊,在進汝後台時,最後都寫到磁碟去,因為程式可能在後台被殺死,釋放盡可能釋放的記憶體
- (void)applicationdidenterbackground:(uiapplication *)application當程式從後台將要程式回到前台時呼叫,這個剛還與上面的那個方法相反.
- (void)applicationwillenterforeground(uiapplication *)application當程式將要退出時被呼叫通常使用來儲存資料和一些退出前的清理工作.這個需要設定 uiapplicationexitsonsuspend的鍵值.
- (void)applicationwillterminate:(uiapplication *)applicationmain 函式
main 函式是程式啟動的入口,在 ios app 中, main 函式的功能被最小化,他的主要工作都交給了 uikit framework.# import
# import pnappdelegate.h
int main(int argc, char * ar**)
}uiapplicationmain 函式有四個函式,你不需要改變這些引數值,不過我們需要理解這些引數和程式是如何開始的: argc 和 ar** 引數包含了系統帶過來的啟動時間.第三個引數確定了主要應用程式類的名稱,這個引數指定為 nil, 這樣 uikit 就會使用預設的 uiapplication 類建立物件.第四個引數是程式自定義的**類名,這個類負責系統和**之間的互動.它一般在 xcode 新建專案是會自動生成.
另外 uiapplicationmain 函式載入了程式主介面的檔案.雖然這個函式載入了介面檔案,但是沒有放到應用程式的 windows 上.
重點理解, uiapplicationmain 的做的三件事:
1.根據第三個引數建立 uiapplication 物件.
2.根據第四個引數建立應用程式的 delegate, 並設定 delegate.
3.設定主事件迴圈( main event loop) 包括 application 的 run loop, 同時開始處理事件.
iPhone遊戲開發
總的來說這個問題比較好解決,xcode新建的工程中就有opengl es這一項,基本的呼叫關係都給你弄好了。下面說說我開發的過程 說到底我絕大多數時間還是在win平台下進行開發的,儘管業界說mac的系統如何如何好,xcode功能如何如何強大,但還是感覺沒有windows好用,沒有vs方便 這個問題也...
iphone開發雜談
很久沒看到這麼好的文章了,此文摘自stackoverflow的翻譯,獻給iphone開發的同仁們,同時也給自己做個筆記 192個加分的回答 有些初學時的做法,現在我認為是不標準的。2 說起來私有,我傾向於把似有方法定義在.m檔案裡,放在乙個私有的category內,如下 import myclass...
iphone開發前景
說起iphone開發,必然要先說說iphone了,也就是蘋果手機,總體來說,蘋果手機的出現帶動了一系列的it行業的迅猛增長,在2007 年6月29日蘋果公司首發iphone,在當年9月10日iphone就突破了100萬台,蘋果公司股價漲至180美元,由於蘋果手機硬體和系統幾乎完美的結合,給了使用者非...