天天看點

iOS7應用開發13:應用類UIApplication、網絡活動訓示器、地圖

1、應用類UIApplication:

UIApplication類為應用提供了一個共享的執行個體,可以提供一些全局資訊,其核心作用是提供了iOS程式運作期間的控制和協作工作。應用在運作期必須且隻能有一個UIApplication(或者其子類)的執行個體。調用方法如下:

UIApplication的主要任務是處理使用者相關事件,該類會生成一個任務隊列存放各種使用者事件并逐個進行處理。同時該類還負責将UIControl空間傳遞給它的消息傳遞給相應的目标對象。此外,UIApplication類還維護一個目前應用中所有打開的UIWindow視窗的清單,是以可以擷取應用的每一個UIView對象。每一個應用對象通常都會有其代理對象,該對象将負責處理應用運作時的一些重要事件,如啟動應用、低記憶體警告、退出應用等,并作出适當的響應。

每一個應用啟動時,都将調用UIApplicationMain函數,該函數的一個重要作用就是生成一個UIApplication單例執行個體,在其後的程式中可以通過上述代碼擷取此執行個體的指針。

2、網絡活動訓示器:

這是UIApplication的一個bool類型的property,其定義如下所示:

如果設為YES,則狀态欄會出現網絡活動訓示,設為NO則将其關閉。

該屬性的作用域為全局作用域,所有線程都可以通路。需要考慮解決該屬性的線程間沖突問題。

更多與UIApplication相關的内容可以參考官方文檔:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006728-CH3-DontLinkElementID_6

3、地圖、Core Location架構:

該架構用于處理位置和方位資訊,沒有UI界面。通過該framework提供的類和協定,可以配置并處理位置和方位事件的傳遞。

該架構的基類為:CLLocation,其含有的屬性有:coordinate, altitude, horizontal/verticalAccuracy, timestamp, speed, course。一個CLLocation的對象代表一個由CLLocationManagers生成的位置資訊,該對象包含了目前裝置的位置坐标、海拔高度、測量精度以及測量時間,同時在裝置移動時還會包含移動目标方位和速度。

擷取CLLocation的方法:通過CLLocationManager。CLLocationManager可以作為生成位置資訊的工具,使用一個CLLocationManager的執行個體控制傳遞位置和方向資訊,以及控制什麼時候傳遞事件。同時還可以擷取最近的位置和方向資訊。

CLLocationManager的對象支援的與方位有關的活動有:

1、以某個預設定的精度檢測目前裝置的位置移動;

2、對iOS,可以在指南針中報告目前裝置指向方位的變化;

3、對感興趣區間的監視,以及在裝置進入該區間時發送相關事件;

4、在應用轉入背景運作時推遲更新方位狀态;

5、向附近beacons報告範圍;

在實際應用中,使用者可以設定禁止應用通路位置資訊(如禁用GPS等)。在應用啟動時,Core Location架構提示使用者是否允許通路位置資訊。如果禁止,則在調用<code>CLLocationManager</code>的代理方法時會傳回一個錯誤值。利用authorizationStatus方法可以檢視應用的完整授權狀态。

在使用<code>CLLocationManager</code> 的功能時,需要做的有:

1、在啟動服務之前,檢測相應裝置是否存在,若不存在則放棄操作;

2、建立一個<code>CLLocationManager</code> 執行個體;

4、設定其他相關的屬性;

5、調用響應的方法開始發送相關事件;

繼續閱讀