Я создаю приложение с Estimotes indoor Location, любое я использую CoreLocation, чтобы найти наш маяк, и мое приложение изменит label.text. Приложение может работать, но не работает, label.text не может измениться.CoreLocation не может использоваться с Estimotes Beacon
override func viewDidLoad() {
super.viewDidLoad()
let path = NSBundle.mainBundle().pathForResource("location", ofType: "json")
do {
let content = try String(contentsOfFile: path!, encoding: NSUTF8StringEncoding)
let locationSetup = ESTLocationBuilder.parseFromJSON(content)
//set up delegate
manager.delegate = self
locationManager.delegate = self
if (CLLocationManager.authorizationStatus() != CLAuthorizationStatus.AuthorizedWhenInUse) {
locationManager.requestWhenInUseAuthorization()
}
locationManager.startRangingBeaconsInRegion(region)
}
func locationManager(manager: CLLocationManager, didRangeBeacons beacons:[CLBeacon], inRegion region: CLBeaconRegion){
let knownBeacons = beacons.filter{ $0.proximity != CLProximity.Unknown }
if (knownBeacons.count > 0){
let closestBeacon = knownBeacons[0] as CLBeacon
if(closestBeacon.minor.integerValue == 41016)
{
self.snow.text = "find"
}
}
}
Попробуйте добавить утверждения NSLog внутри didRangeBeacons: inRegion: и внутри ваших двух операторов if. Какие строки журналов печатаются? – davidgyoung
Я добавляю NSLog в код, если (knownBeacons.count> 0) {NSLog ("find beacon") и if (ближайшийBeacon.minor.integerValue == 41016) {NSLog ("catch")} Но Output ничего не может распечатать , Я не знаю, почему эта функция не может работать. –
Где в коде вы инициализируете 'locationManager'? Я не вижу его. Это возможно, ноль? – davidgyoung