1

我有一些兴趣点,想对它们进行硬编码,但在 Objective-c 中似乎没有一个干净的工具可以做到这一点。

我想将两个数字关联到一个字符串:@"cool spot", 37.77794,-122.41933

我是否需要 NSStrings 的 NSDictionary 并将每个浮点数转换为字符串?对所有这些进行分组似乎开销太大?我应该做一个c-struct吗?这种情况已经出现了很多,但想不出一个干净的解决方案可能是什么。

谢谢

4

2 回答 2

7

你打算如何存储它?如果您使用的是 core-data 之类的东西,那么最简单的选择是使用 2 个单独的数字来表示经度和纬度,然后在访问数据时简单地创建一个坐标(汤姆提到的 CLLocationCoordinate2D)

它非常依赖于您的存储方法,因为 iOS 仅允许为不同的方法保存某些类型的对象。

如果您实际上没有将它存储到文件中而只是在内存中使用它,那么正如汤姆所说,像 CLLocationCoordinate2D 这样的东西会起作用,它是一个结构而不是一个对象。如果您想要一个实际的对象,请使用 CLLocation,它在内部包含一个 CLLocationCoordinate2D 对象。

您可以使用以下命令创建 CLLocationCoordinate2D 对象:

CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(latitude, longitude);

或者,如果您需要对象包装器,则使用以下命令创建一个 CLLocation 对象:

CLLocation *loc = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude];
于 2012-12-28T05:53:43.590 回答
2

看看CLLocationCoordinate2DCLLocationCoordinate2D - Apple Developer Docs),它有一个latitude字段和一个longitude字段。

于 2012-12-28T04:58:48.473 回答