NSUserDefaults间歇性地为某些用户重置

时间:2016-04-27 11:02:06

标签: swift clbeacon

我写过一个可以扫描信标的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 个答案:

没有答案