12

一个让我发疯的小转换问题。

我有一个代表纬度的字符串(例如“35.453454”)。我想用它作为 CLLocation 的纬度。

如何以正确的 CLLocation(度数)格式转换字符串?

非常感谢,这让我很生气!托马斯

4

2 回答 2

50

要将 NSString 转换为 CLLocationDegrees(即double):

return [theString doubleValue];
于 2010-04-19T08:45:54.357 回答
7

假设您已将字符串存储"35.453454"

在目标 C

NSString *latitudeString = @"35.453454";

在斯威夫特 2.2

let latituteString : String = "35.453454"

并且您想将此 NSString 转换为正确的 CLLocation。

但是 CLLocation 分别有两个参数纬度和经度。

除非您没有与给定纬度“35.453454”相对应的经度,否则不可能仅将您的纬度存储在 CLLocation 中。

案例1:假设您没有相应的经度。然后,您可以暂时将您唯一的纬度存储在 CLLocationDegrees 中,以便稍后在初始化您的 CLLocation 对象时使用它。

在 Objective-C 中:

CLLocationDegress myLatitude = [latitudeString doubleValue];

在斯威夫特 2.2

let myLatitute : CLLocationDegress = Double(latitudeString)

案例2:假设您有相应的经度。然后,您可以将纬度和经度存储在 CLLocationDegrees 中,以在初始化 CLLocation 对象时使用它。

让你的经度成为18.9201344

然后,

在 Objective-C 中

NSString *longitudeString = @"18.9201344";

//creating latitude and longitude for location
CLLocationDegrees latitudeDegrees = [latitudeString doubleValue];
CLLocationDegrees longitudeDegrees = [longitudeString doubleValue];

//initializing location with respective latitude and longitude
CLLocation *myLocation = [[CLLocation alloc]initWithLatitude:latitudeDegrees longitude:longitudeDegrees];

在斯威夫特 2.2

let longitudeString : String = "18.9201344"

    let latitudeDegrees : CLLocationDegrees = Double(latitudeString)
    let longitudeDegrees : CLLocationDegress = Double(longitudeString)

    let location : CLLocation = CLLocation.init(latitude: latitudeDegrees, longitude: longitudeDegrees)
于 2015-11-22T18:25:32.657 回答