8

Tôi đã thêm CLLocationManager vào ứng dụng của mình bằng Swift trong tệp AppDelegate.startMonitoringSignificantLocationChange không hoạt động trong swift

Trong tập tin Appdelegate.swift,

import CoreLocation 
@UIApplicationMain 
class AppDelegate: UIResponder, UIApplicationDelegate, CLLocationManagerDelegate { 
var locationManager: CLLocationManager! 

Trong phương pháp didbecomeActive:

func applicationDidBecomeActive(application: UIApplication) { 
    if((locationManager) != nil) 
    { 
     locationManager.stopMonitoringSignificantLocationChanges() 
     locationManager.delegate = nil 
     locationManager = nil 
    } 
    locationManager = CLLocationManager() 
    locationManager.delegate = self 
    locationManager.desiredAccuracy = kCLLocationAccuracyBest 
    locationManager.activityType = CLActivityType.OtherNavigation 
    locationManager.requestAlwaysAuthorization() 
    locationManager.startMonitoringSignificantLocationChanges() 
} 

Nếu tôi sử dụng startUpdatingLocation, phương pháp didUpdateLocations được gọi, nhưng không phải cho startMonitoringSignificantLocationChanges.

Tại sao nó không được gọi cho startMonitoringSignificantLocationChanges. Tôi đang thử nghiệm tính năng này trong trình mô phỏng ios. Tôi không biết cách kiểm tra thiết bị.

+0

có thể trùng lặp: http://stackoverflow.com/questions/8682683/can-i-test-significant-change-with-xcode-simulator – adolfosrs

Trả lời

20

Nó hoạt động, nhưng thật khó để kích hoạt thay đổi vị trí quan trọng - nó thường xảy ra khi thiết bị đang thay đổi tháp di động - Tôi không nghĩ rằng nó có thể thực hiện với trình mô phỏng.

Có thể bạn sẽ phải lên xe đạp/xe hơi và đi du lịch ÍT NHẤT một vài ki lô mét.

Có một thủ thuật bạn có thể sử dụng tuy nhiên, sẽ kích hoạt sự thay đổi vị trí quan trọng: chế độ Airplaine

Chuyển trong iPhone của bạn và tắt với một vài chu kỳ thứ hai liên tục, nó sẽ đánh lừa khiến thiết bị vào suy nghĩ rằng nó đã thay đổi tế bào tháp và kích hoạt thay đổi vị trí quan trọng.

enter image description here

+1

Có, bạn phải di chuyển một vài kilomet - đủ để kích hoạt thay đổi tháp di động. –

+0

ok, hãy để tôi thử, cảm ơn câu trả lời của bạn +1. :) – NAZIK

+1

nhớ spam rằng nút máy bay: D Nó nên sau một vài thiết bị chuyển mạch. –

3

Trong mô phỏng của bạn, goto Debug-> Location-> Tuỳ chỉnh và thay đổi vị trí, sau đó kiểm tra nó.

Các vấn đề liên quan