将CLLocationCoordinate2D类型转换为数字或字符串

时间:2011-08-01 13:38:14

标签: cocoa cllocation

我想知道如何将CLLocationCoordinate2D的纬度和经度值转换为数字或字符串值。 Iver尝试了几种不同的方法,但它们都没有工作:

CLLocationCoordinate2D centerCoord;
centerCoord.latitude = self.locModel.userLocation.coordinate.latitude ;
centerCoord.longitude = self.locModel.userLocation.coordinate.longitude; 
NSString *tmpLat = [[NSString alloc] initWithFormat:@"%g", centerCoord.latitude];
NSString *tmpLong = [[NSString alloc] initWithFormat:@"%g", centerCoord.longitude];

NSLog("User's latitude is: %@", tmpLat);
NSLog("User's longitude is: %@", tmpLong);

这将由编译器返回警告。

警告是

warning: passing argument 1 of 'NSLog' from incompatible pointer type

我该怎么做?

任何帮助都将不胜感激。

感谢

1 个答案:

答案 0 :(得分:7)

你没有提到警告是什么,但很可能是因为你忘记了NSLog字符串前面的@

NSLog(@"User's latitude is: %f", self.locModel.userLocation.coordinate.latitude );
NSLog(@"User's longitude is: %f", self.locModel.userLocation.coordinate.longitude );

您的更新代码应为:

NSLog(@"User's latitude is: %@", tmpLat);
NSLog(@"User's longitude is: %@", tmpLong);

NSLog需要一个NSString参数,前面需要一个@符号。没有@符号,字符串是普通的C字符串而不是NSString对象。