#ios #swift #mkmapview
#iOS #swift #mkmapview
Вопрос:
У меня есть карта, которую я пытаюсь использовать для увеличения местоположения пользователя, и, похоже, я могу заставить setUserTrackingMode работать правильно. У меня showsUserLocation работает нормально, но я не могу увеличить его. Я использую xCode 6 с iOS 8 и swift. Вот как я пытаюсь вызвать метод:
@IBOutlet var mapView : MKMapView
override func viewDidLoad() {
super.viewDidLoad()
self.mapView.showsUserLocation = true
self.mapView.delegate = self;
self.mapView.setUserTrackingMode(MKUserTrackingModeFollow, animated: true);
Я получаю сообщение об ошибке для self.mapView.setUserTrackingMode(MKUserTrackingModeFollow, animated: true);
Ошибка гласит: «Использование неразрешенного идентификатора’MKUserTrackingModeFollow'»
Как я могу заставить его увеличить местоположение пользователя?
Комментарии:
1. Запрашивали ли вы разрешение на местоположение у диспетчера местоположений и указывали ли ключ использования местоположения в вашем info.plist?
2. @Paulw11 Да, он отлично отображает местоположение пользователя, поэтому я не думаю, что это имеет какое-либо отношение к этому. Я думаю, что проблема как-то связана с тем, как я звоню
setUserTrackingMode
, потому что он показывает ошибку. На самом деле, это информация, которую я пропустил в своем сообщении. Я очень быстро обновлю его.
Ответ №1:
Из предварительной документации режимы отслеживания swift:
enum MKUserTrackingMode : Int {
case None
case Follow
case FollowWithHeading
}
Вы должны использовать —
self.mapView.setUserTrackingMode(MKUserTrackingMode.Follow, animated: true);
В Swift, поскольку перечисления рассматриваются как тип, «Следовать» интерпретируется в рамках перечисления MKUserTrackingMode.
Комментарии:
1. Я только что попробовал, и я получаю ту же ошибку:
Use of unresolved identifier 'Follow'
2.
.Follow
вероятно, это также сработает из-за автоматического вывода типа Swift.