如何将动态位置数据加载到字典对象/数组中?
Posted
技术标签:
【中文标题】如何将动态位置数据加载到字典对象/数组中?【英文标题】:How do I load dynamic location data into a dictionary object/array? 【发布时间】:2012-03-22 22:15:20 【问题描述】:我制作了一个非常基本的字典,其中只存储了一个用户名,我还想在其中存储动态生成的 latlngs。我已经可以获取当前的 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];
任何帮助将不胜感激。
【问题讨论】:
将它们存储为字符串可以,但使用 NSNumber 更容易编码/解码为浮点数据类型。 【参考方案1】:如果你有两个纬度...
float latitudeA;
float latitudeB;
您想放入一个数组,首先将它们“包装”为 NSNumbers...
NSNumber *numLatitudeA = [NSNumber numberWithFloat:latitudeA];
NSNumber *numLatitudeB = [NSNumber numberWithFloat:latitudeB];
这会让你把它们放在一个数组中......
NSArray *myLatitudes = [NSArray arrayWithObjects:numLatitudeA, numLatitudeB, nil];
可以放在你的字典里(如果你愿意,可以放在@"latitude" 键下)...
[myData setValue:myLatitudes forKey:@"latitude"];
不过,您可能希望将多个纬度数组与不同的唯一经度相关联。如果是这样,与其使用字符串 @"latitude" 作为键,经度本身(如果它是 NSNumber)可以是一个非常好的键。
NSNumber *numLongitude = [NSNumber numberWithFloat:longitude];
[myData setObject:myLatitudes forKey:numLongitude];
【讨论】:
感谢您的回复。这仅适用于 2 个独特的纬度和经度吗?我需要字典来存储数千个唯一关联的 latlng,这些 latlng 每天至少会从字典发送到数据库一次。使用 SQLlite 会是更好的选择吗? 对于集合对象来说,这仍然是一个很小的数量。驱使您访问数据库的因素是 (a) 更像是数十万或数百万,(b) 复杂的相互关系,(c) 需要在手机上保存这些数据。以上是关于如何将动态位置数据加载到字典对象/数组中?的主要内容,如果未能解决你的问题,请参考以下文章
将核心数据加载到数组中,然后填充表视图,重新排序数组对象不会持久
如何将 numpy 数组列表加载到 pytorch 数据集加载器?
我想从firebase实时数据库中显示recyclerview android上的数据..但我无法将动态数据加载到适配器数组中