core location可以利用三種技術來實現:gps、蜂窩基站三角網定位(cell tower triangulation)和wi-fi定位服務(wps),其中gps是最精確的。
我們只用告訴core location我們想要的精度級別,它將從它可用的技術中決定哪種可以更好地滿足你的需求。
為了與core location打交道,需要建立乙個位置管理器例項,如下所示:
cllocationmanager *locationmanager = [[cllocationmanageralloc]init];
這將建立乙個例項,但它並沒有馬上開始工作,還要設定委託和請求指定精度級別:
locationmanager.desiredaccuracy = kcllocationaccuracybest;
/*kcllocationaccuracynearesttenmeters
kcllocationaccuracyhundredmeters
kcllocationaccuracykilometer
kcllocationaccuracythreekilometers*/
設定距離篩選器:
locationmanager.distancefilter = 1000.0f;
將告知位置管理器直到iphone已經從以前報告的位置移動至少1000公尺之後才通知其委託。
//啟動位置管理器:
[locationmanager startupdatinglocation];
//停止位置管理器:
[locationmanager stopupdatinglocation];
//使用cllocation獲取緯度和經度:
cllocationdegrees *latitude = thelocation.coordinate.latitude;
cllocationdegrees *longitude = thelocation.coordinate.longitude;
另外,horizontalaccuracy屬性描述以coordinate作為其中心的乙個圓的半徑。此值越大,位置就越不準確。
altitude屬效能告訴你你在海平面以上還是以下多少公尺。
verticalaccuracy表示core location在其精確的海拔方面的準確程度。
cllocationmanagerdelegate有兩個委託方法:
當更新位置的時候,將呼叫locationmanager:didupdatetolocation:fromlocation:方法。
當遇到錯誤的時候,將呼叫locationmanager:didfailwitherror:方法。
錯誤**有kclerrordenied和kclerrorlocationunknow兩種。前者通常表示訪問拒絕(可能是由使用者拒絕),並且應用程式之後都將無法訪問core location;後者的錯誤一般可能是臨時的。
IOS 陣列使用
arc下 定義陣列 nsmutablearray tt和nsmutablearray tb 當nsmutablearray tb nsmutablearray alloc init nsdictionary d nsdictionary dictionarywithobject 123 forkey...
iOS使用濾鏡
ciimage.這個類儲存影象資料。它可以從uiimage 影象檔案 或者是畫素資料中構造出來。cifilter.濾鏡類包含乙個字典結構,對各種濾鏡定義了屬於他們各自的屬性。濾鏡有很多種,比如鮮豔程度濾鏡,色彩反轉濾鏡,剪裁濾鏡等等。把uiimage轉換成濾鏡可以操作的ciimage ciimage...
ios 記憶體使用陷阱
在iphone開發過程中,中的記憶體洩露我們很容易用記憶體檢測工具leaks 檢測出來,並一一改之,但有些是因為ios 的缺陷和用法上的錯誤,leaks 檢測工具並不能檢測出來,你只會看到大量的記憶體被使用,最後收到didreceivememorywarning,最終導致程式崩潰。以下是開發過程中遇...