Я пытаюсь отправить свою позицию в iOS и быстро, но через некоторое время приложение остановится и перестанет работать.CLLocation останавливается в IOS
class Location:NSObject, CLLocationManagerDelegate {
private var locationManager = CLLocationManager()
private var errorLocation: Bool = false
private var stuffLocation: CLLocation!
var outSocket: OutSocket!
var timer: NSTimer!
var stuff: Stuff!
override init() {
super.init()
outSocket = OutSocket()
setupLocation()
}
func setupLocation() {
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestWhenInUseAuthorization()
locationManager.activityType = CLActivityType.Fitness
locationManager.allowsBackgroundLocationUpdates = true
locationManager.startUpdatingLocation()
}
func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
if !errorLocation {
errorLocation = true
locationManager.allowDeferredLocationUpdatesUntilTraveled(10, timeout: 50)
stuffLocation = locations[0]
if timer == nil {
timer = NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector: #selector(Location.sendDataToServer), userInfo: nil, repeats: true)
}
}
}
}
func locationManager(manager: CLLocationManager, didFinishDeferredUpdatesWithError error: NSError?) {
errorLocation = false
}
Это мой код, если кто-то сделал что-то похожее или знает, как предотвратить остановки APP, это оценят.
Приложение перестает получать информацию GPS, поскольку каждое обновление событий GPS управляет данными для сокета TCP на моем сервере. Я читал, что iOS останавливает фоновые приложения, но не знаю много об этом. – Jarboox
Приложение останавливается, когда я оставляю приложение самостоятельно. Например, когда я перехожу на Facebook или просто при блокировке устройства. – Jarboox
Время, затрачиваемое на закрытие, составляет от 3 до 5 часов. Иногда mejos час. Но этого не произойдет, если я подключу dispositovo к Mac. – Jarboox