2016-05-08 1 views
0

У меня есть следующий код:mapView.annotations.count не 0 в быстром

@IBAction func countAnnotations(sender: AnyObject) { 
    print("Annotations Count = \(mapView.annotations.count)") 

    if mapView.annotations.count == 0 { 
     print("No annotations") 
    }else{ 
     print("1 or more annotations") 
    } 
} 

Это означало, чтобы проверить, сколько аннотаций на мой взгляд карте.

Проблема возникает, когда я начинаю извлекая местоположение пользователя, используя следующий код:

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
    //Update the current location 
    currentLocation = manager.location!.coordinate 
    print("locations = \(currentLocation.latitude) \(currentLocation.longitude)") 
} 

По какой-то причине это, кажется, считается аннотацию. Как определить фактическую аннотацию?

+0

Вы хотите показать местоположение пользователя или его следует скрыть? –

+0

Я хочу, чтобы местоположение пользователя всегда было видимым, когда это возможно. –

+0

Bump? Еще нужна помощь! –

ответ

1

Исправлено, просто добавив переменную bool currentLocationVisible = false. Затем установите его и проверите.

func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
     //Update the current location 
     currentLocation = manager.location!.coordinate 
     print("locations = \(currentLocation.latitude) \(currentLocation.longitude)") 
     currentLocationVisible = true 
} 

Теперь это просто проверка переменной.

if (mapView.annotations.count == 0 || currentLocationVisible == true) 

Простенько!

Смежные вопросы