Что-то вроде этого:
int pos = 0; while (pos & lt; lst.size ()) {Foo foo = lst.get (pos); if (hasToBeRemoved (foo)) {lst.remove (pos); // не перемещать позицию} else {pos ++; }}
Благодарим за информацию о симуляторе GPS. Я попытался сделать простое приложение iOS на iPhone5 (iOS8), чтобы получить местоположение от приложения GPS-Simulator на Samsung S4. Я отключил Wi-Fi и 3G, включил BlueTooth на iPhone. Но CLLocationManager не может получить местоположение.
Вот код:
clManager = [[CLLocationManager alloc] init]; clManager.delegate = self; clManager.desiredAccuracy = 100; clManager.distanceFilter = kCLDistanceFilterNone; [clManager startUpdatingLocation];
код получил kCLAuthorizationStatusAuthorizedAlways уведомили. Но после этого нет возвращенных данных о местоположении через делегат callback «didUpdateLocations».
Не могли бы вы рассказать мне какую-либо специальную настройку CLLocationManager, чтобы он мог получать GPS-сообщение от GPS-симулятора.
Чтобы уточнить ответ @KennyHo, я узнал, что существует другая разница между реальной и имитируемой обратной связью местоположений.
Симуляционное местоположение, как я заметил, всегда возвращает эту комбинацию значений для этих свойств / опций местоположения:
horizontalAccuracy: 5
verticalAccuracy: -1
altitude: 0.000000
speed: -1
, в то время как реальное местоположение будет давать разные комминирования 99% время, например
horizontalAccuracy: 5
verticalAccuracy: 10
altitude: +/- 0.4243232
speed: -1
Обратите внимание, что для моделируемого местоположения возможно иметь другую комбинацию, чем приведенная выше, но только если пользователь использует xcode целевой тест автоматизации . Однако пользователь может смоделировать местоположение только для подписанного приложения с идентификатором разработки (должен принадлежать приложение). Это означает, что никто, кроме вас, не может подделать местоположение с разными altitude
или verticalAccuracy
, чтобы обмануть ваше приложение в xcode.
Я не считаю, что можно обнаружить симуляторы местоположения.
Более простой способ подделать местоположение - использовать внешнее bluetooth или последовательное соединение с симулятором GPS , который выводит Предложения NMEA . Вам не нужна учетная запись разработчика, хотя вам нужен Android-телефон для запуска симулятора.
iPhone автоматически обнаружит внешний GPS и CLLocationManager
будет использовать внешние источники GPS вместо собственных внутренних GPS. Это действительно удобно для лабораторных испытаний картографических и навигационных приложений.