如何将动态位置数据加载到字典对象/数组中?

时间:2012-03-22 22:15:21

标签: iphone objective-c xcode cocoa-touch nsmutabledictionary

我创建了一个非常基本的字典,只存储了一个用户名,我也想在其中存储动态生成的latlng。我已经可以获得当前的latlng,并且正在研究如何跟踪位置并存储新的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];

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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"];

但是,您可能希望将多个纬度数组与不同的唯一经度相关联。如果是这样,而不是使用字符串@“latitude”作为键,经度本身(如果它是一个NSNumber)可以是一个非常好的键。

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