Iphone. Создать широту из строки или целых чисел - PullRequest
12 голосов
/ 19 апреля 2010

Одна маленькая проблема конверсии, которая сводит меня с ума.

У меня есть строка (например, "35.453454"), которая представляет широту. Я хочу использовать его как широту для CLLocation.

Как я могу преобразовать строку в правильный формат CLLocation (в градусах)?

Большое спасибо, это сводит меня с ума! Томас

Ответы [ 2 ]

51 голосов
/ 19 апреля 2010

Чтобы преобразовать NSString в CLLocationDegrees (то есть double):

return [theString doubleValue];
6 голосов
/ 22 ноября 2015

Предположим, что вы сохранили вашу строку "35.453454" как

В объективе C

NSString *latitudeString = @"35.453454";

In Swift 2.2

let latituteString : String = "35.453454"

И вы хотите преобразовать эту строку NSS в правильную CLLocation.

Но CLLocation имеет два параметра широты и долготы соответственно.

Если у вас нет долготы, соответствующей вашей заданной широте "35.453454", если невозможно сохранить только вашу широту в CLLocation.

CASE 1: Предположим, что у вас нет соответствующей долготы. Затем вы можете сохранить свою единственную широту в CLLocationDegrees, чтобы позднее использовать ее при инициализации объекта CLLocation.

В Objective-C:

CLLocationDegress myLatitude = [latitudeString doubleValue];

In Swift 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];

In Swift 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...