代码之家  ›  专栏  ›  技术社区  ›  M. Wojcik

返回控制器时Swift 4 save CBPeripherals array save state[重复]

  •  1
  • M. Wojcik  · 技术社区  · 8 年前

    所以我正在使用蓝牙连接,我有一系列连接的设备(一些传感器)。设备中的问题是,每当有东西连接到该设备时,CBCentralManager扫描都找不到它们(这就是它们的工作方式)。这就是为什么我必须制作一个连接的CBPeripherals阵列,我想在TableView中显示它,在那里我还显示未连接的设备(扫描时发现的设备)。

    现在的问题是,每当我把一些东西放入我的connectedDevices[CBPeripheral]数组,然后我从控制器返回,然后返回它,connectedDivecies数组是空的。这绝对正常,我理解。

    所以问题是,我如何在swift中存储该数组,这样每当我返回到该控制器时,它都会保存相同的数据,我的意思是,相同的CBPeripheral对象?我试着用UserDefaults来做,但似乎什么都不管用。

    请给我一些关于如何管理的想法

    1 回复  |  直到 8 年前
        1
  •  0
  •   Neo    8 年前

    只需将设备列表保存在AppDelegate中即可

    然后使用以下方式访问它:

    let appDelegate = UIApplication.shared.delegate as! AppDelegate
    let aVariable = appDelegate.someVariable
    

    虽然有很多 discussion 关于是否将App Delegate用作存储对象的单例。 IMHO存储一系列较小的对象无论如何都不会损害你的应用程序