NSUserDefaults периодически сбрасывается для некоторых пользователей

Я написал приложение для iOS, которое сканирует маяки.

Я установил приложение для мониторинга предварительно выбранного второстепенного маяка и имею два метода, getBeaconMinor() и setBeaconMinor(), которые читают / записывают значение из / в NSUserDefaults.

Я использую.syncronize() после каждого изменения. Я не могу воспроизвести проблему, но некоторые из моих пользователей сообщают, что getBeaconMinor () возвращает "0" значение по умолчанию, через несколько дней после того, как они успешно установили setBeaconMinor(), изменив значение beaconMinor на свой маяк (в диапазоне от 1-400). Значение по умолчанию '0' используется в качестве триггера для ВСЕХ маяков, тогда как когда beaconMinor установлен, UUID маяка ограничивается этим второстепенным значением.

public static func getRegionMinor() -> CLBeaconMinorValue {
    NSUserDefaults.standardUserDefaults().synchronize()
    let beaconInfo = NSUserDefaults.standardUserDefaults()
    let minorValue = beaconInfo.integerForKey("minorValue")
    let value = CLBeaconMinorValue(minorValue)
    return value
}

public static func setRegionMinor(minorValue: Int) {
    NSLog("Setting beacon region for minor id \(minorValue)")
    let beaconInfo = NSUserDefaults.standardUserDefaults()
    beaconInfo.setInteger(minorValue, forKey: "minorValue")
    NSUserDefaults.standardUserDefaults().synchronize()
    //Restart beacon region monitoring
    BeaconService.sharedService().tryMonitoringBeacons()
    return
}

0 ответов

Другие вопросы по тегам