我有一些兴趣点,想对它们进行硬编码,但在 Objective-c 中似乎没有一个干净的工具可以做到这一点。
我想将两个数字关联到一个字符串:@"cool spot", 37.77794,-122.41933
我是否需要 NSStrings 的 NSDictionary 并将每个浮点数转换为字符串?对所有这些进行分组似乎开销太大?我应该做一个c-struct吗?这种情况已经出现了很多,但想不出一个干净的解决方案可能是什么。
谢谢
我有一些兴趣点,想对它们进行硬编码,但在 Objective-c 中似乎没有一个干净的工具可以做到这一点。
我想将两个数字关联到一个字符串:@"cool spot", 37.77794,-122.41933
我是否需要 NSStrings 的 NSDictionary 并将每个浮点数转换为字符串?对所有这些进行分组似乎开销太大?我应该做一个c-struct吗?这种情况已经出现了很多,但想不出一个干净的解决方案可能是什么。
谢谢
你打算如何存储它?如果您使用的是 core-data 之类的东西,那么最简单的选择是使用 2 个单独的数字来表示经度和纬度,然后在访问数据时简单地创建一个坐标(汤姆提到的 CLLocationCoordinate2D)
它非常依赖于您的存储方法,因为 iOS 仅允许为不同的方法保存某些类型的对象。
如果您实际上没有将它存储到文件中而只是在内存中使用它,那么正如汤姆所说,像 CLLocationCoordinate2D 这样的东西会起作用,它是一个结构而不是一个对象。如果您想要一个实际的对象,请使用 CLLocation,它在内部包含一个 CLLocationCoordinate2D 对象。
您可以使用以下命令创建 CLLocationCoordinate2D 对象:
CLLocationCoordinate2D coord = CLLocationCoordinate2DMake(latitude, longitude);
或者,如果您需要对象包装器,则使用以下命令创建一个 CLLocation 对象:
CLLocation *loc = [[CLLocation alloc] initWithLatitude:latitude longitude:longitude];
看看CLLocationCoordinate2D
(CLLocationCoordinate2D - Apple Developer Docs),它有一个latitude
字段和一个longitude
字段。