Подтвердить что ты не робот

Iphone. Создание широты из строки или целых чисел

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

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

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

Огромное спасибо, это сводит меня с ума! Томас

4b9b3361

Ответ 1

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

return [theString doubleValue];

Ответ 2

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

В Objective C

NSString *latitudeString = @"35.453454";

В Swift 2.2

let latituteString : String = "35.453454"

И вы хотите преобразовать эту NSString в соответствующую CLLocation.

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

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

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

В Objective-C:

CLLocationDegress myLatitude = [latitudeString doubleValue];

В Swift 2.2

let myLatitute : CLLocationDegress = Double(latitudeString)

CASE 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];

В 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)