2012-03-22 68 views
0

我做了一個非常基本的字典,它只存儲一個用戶名,並且我也想在其中存儲動態生成的latlng。我已經可以獲得當前的經驗,並且正在研究如何跟蹤位置並存儲新的緯度,並根據距離或時間進行更新。如何將動態位置數據加載到字典對象/數組中?

我將如何去關於'緯度'和經度相同的存儲多個緯度?

我的用戶名字典是在這裏:

username = Textbox.text; 

    NSMutableDictionary *mydata = [[NSMutableDictionary alloc] init ]; 

    [mydata setObject:username forKey:@"username"]; 
    NSLog(@"%@", [mydata objectForKey:@"username"]); 

我目前的位置代碼是在這裏:

locationManager =[[CLLocationManager alloc] init]; 

locationManager.delegate = self; 
locationManager.desiredAccuracy = kCLLocationAccuracyBest; 
locationManager.distanceFilter = 100.0f; 
[locationManager startUpdatingLocation]; 

CLLocation *location = [locationManager location]; 
CLLocationCoordinate2D coordinate = [location coordinate]; 
NSString *latitude = [NSString stringWithFormat:@"%f", coordinate.latitude]; 
NSString *longitude = [NSString stringWithFormat:@"%f", coordinate.longitude]; 

任何幫助將不勝感激。

+0

將它們存儲爲字符串將工作,但使用NSNumber編碼/解碼爲浮點數據類型更容易。 – amleszk 2012-03-23 00:41:32

回答

3

如果你有兩個緯度...

float latitudeA; 
float latitudeB; 

,你想放一個數組,第一個 「包裹」 起來作爲NSNumbers ...

NSNumber *numLatitudeA = [NSNumber numberWithFloat:latitudeA]; 
NSNumber *numLatitudeB = [NSNumber numberWithFloat:latitudeB]; 

這將讓你把它們放在一個數組...

NSArray *myLatitudes = [NSArray arrayWithObjects:numLatitudeA, numLatitudeB, nil]; 

可以放置在你的字典(下鍵@「緯度」如果你想)...

[myData setValue:myLatitudes forKey:@"latitude"]; 

雖然,您可能想要將多個緯度陣列與不同的唯一經度關聯。如果是這樣,而不是使用字符串@「緯度」作爲關鍵,經度本身(如果它是一個NSNumber)可以是一個完美的關鍵。

NSNumber *numLongitude = [NSNumber numberWithFloat:longitude]; 
[myData setObject:myLatitudes forKey:numLongitude]; 
+0

謝謝你的迴應。這是否只適用於2個獨特的經度和緯度?我需要字典來存儲成千上萬個唯一相關的latlng,這些latlng將會從字典發送到數據庫,至少每天一次。使用SQLlite會是更好的選擇嗎? – michael03m 2012-03-27 02:05:58

+0

對於集合對象來說,這仍然是一個相當小的數量。 (a)更像數十萬或數百萬,(b)複雜的相互關係,(c)需要將數據保存在電話中。 – danh 2012-03-27 03:45:23

相關問題