как отправить координаты долготы и широты пользователя через текст смс

В моей функции «поделиться местоположением» я хочу, чтобы пользователь имел возможность отправлять текст, который разделяет их текущее местоположение в виде координат долготы/широты. Ошибка, которую я получаю с тем, что я реализовал: «Контекстный тип« строка »не может использоваться с литералом массива». Как или какой правильный код реализовать?

Вот мой код

 @IBAction func shareLocation(sender: AnyObject) {
   // Send user coordinates through text

    if !MFMessageComposeViewController.canSendText() {
        print("SMS services are not available")

        var coordinate: CLLocationCoordinate2D

        messageVC!.body = [coordinate.latitude, coordinate.longitude];
        messageVC!.recipients = [LookoutCell.description()];
        messageVC!.messageComposeDelegate = self;


        self.presentViewController(messageVC!, animated: false, completion: nil)
    }
}

person jonB22    schedule 28.04.2016    source источник


Ответы (1)


В этом коде много неправильного:

  1. Вы проверяете, не можете ли вы отправить текст через !MFMessageComposeViewController.canSendText(), а затем отправляете, если не можете (скобки должны заканчиваться раньше)
  2. Вы объявляете var coordinate: CLLocationCoordinate2D без значения, которое не будет компилироваться
  3. Широта и долгота удваиваются, поэтому вам нужно форматирование строки для вывода этих значений.
  4. body — это строка, вы пытались отправить ей массив.
  5. Попробуйте это вместо этого: messageVC!.body = String(format: "Lat: %.4f, Long: %.4f", coordinate.latitude, coordinate.longitude) - вам нужно будет изучить руководства по форматированию для более подробной информации (вы можете начать здесь)
person sschale    schedule 28.04.2016
comment
Ничего себе, я не знал, что это было неправильно. Я также загляну в руководства по форматированию для получения дополнительной помощи. - person jonB22; 28.04.2016