[ 我見 我聞 ]
- AppDelegate
- 生命週期
- UIView、UIWindow、UIScreen
[ 我學 ]
- Foreground :前台
- Background :後台
- Not running:應用程式並沒有啟動
- Inactive :應用程式運行在前台但是沒有接收到事件響應
- Active :應用程式運行在前台接受到事件響應
- Background :運行在後台並且執行代碼
- Suspended :運行在後台但是沒有運行代碼
參考 從實踐談iOS生命周期
#AppDelegate
- 在IOS中相當重要,負責管理整個Application生命週期
- 每個Iphone應用程式都有一個UIApplication
- UIApplication是開始負責初始化並顯示UIWindow
- 負責加載應用程式的第一個UIView到UIWindow
- 透過UIApplicationDelegate這代理來幫助管理應用程式的生命週期
- UIApplication負責接收事件 ; UIApplicationDelegate負責決定應用程式要如何響應這些事件(包括:生命週期事件-程式啟動或關閉.系統事件-來電)
#生命週期
- 當程式載入,啟用入口
Objective-C
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { NSLog(@"程式載入時啟用"); return YES; }
Swift
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { print("程式載入時啟用") return true }
- 在應用程式將要由活度狀態切換到非活動狀態的時候(例如:按下HOME鍵),在此期間應用程式不再接收訊息
Objective-C
- (void)applicationWillResignActive:(UIApplication *)application { NSLog(@"應用程式將要進入非活動狀態,即將進入後台"); }
Swift
func applicationWillResignActive(application: UIApplication) { print("應用程式將要進入非活動狀態,即將進入後台") }
- 當程式被推到後台時用,要設置後台繼續運行
Objective-C
- (void)applicationDidEnterBackground:(UIApplication *)application { NSLog(@"應用程式支援在後台執行,進入後台運行"); }
Swift
func applicationDidEnterBackground(application: UIApplication) { print("應用程式支援在後台執行,進入後台運行") }
- 當程式從後台將重新回到前台時
Objective-C
- (void)applicationWillEnterForeground:(UIApplication *)application { NSLog(@"應用程式將要進入活動狀態,即將進入前台運行"); }
Swift
func applicationWillEnterForeground(application: UIApplication) { print("應用程式將要進入活動狀態,即將進入前台運行") }
- 當應用程式進入活動狀態執行
Objective-C
- (void)applicationDidBecomeActive:(UIApplication *)application { NSLog(@"應用程式已進入前台,處於活動狀態"); }
Swift
func applicationDidBecomeActive(application: UIApplication) { print("應用程式已進入前台,處於活動狀態"") }
- 當程式要退出,通常是用来保存數據和一些退出前的清理工作。需要要設置 UIApplicationExitsOnSuspend 的鍵值
Objective-C
- (void)applicationWillTerminate:(UIApplication *)application { NSLog(@"應用程式將要退出,通常用於保存數據和一些退出前的清理工作"); }
Swift
func applicationWillTerminate(application: UIApplication) { print("applicationWillTerminate===>") self.saveContext() }
-參考
#UIView、UIWindow、UIScreen
- UIView
- 定義矩形區域,並管理其內容
- 執行時期UIView物件負責呈現該區域所有內容,並且處理與該區域的所有互動
—>螢幕上看到的都是UIView
- UIWindow
- 管理與協調在App中的所有UIView物件
- 與UIScreen合作顯示在實際的螢幕上
—>App只會有一個UIWindow,負責管理所有的UIVew,及分派事件給它們
- UIScreen
- 定義實際螢幕屬性
- 取得主要的螢幕物件,及其他附加螢幕物件
- 定義螢幕的長寬及其他螢幕屬性,像是亮度
[ 我思 ]
現在還無法馬上摸清專題要如何寫,現在就慢慢往前吧!在有限時間,一步步搞懂,先從了解整個IOS概念,到學習Objective C,進而看程式碼試試看,現在也許都像無字天書一樣,離好遠好遠~但我想等到實習那天結束,這過程中一定有滿滿收穫!無論是學習新語言也好,如何開發也好,勢必都會有所成長!