2017-09-15 46 views
0

我目前正在试图持久存储蓝牙设备的信息的iOS 10中的项目。为了连接设备,我需要一个自定义类的三个变量。例如:自定义类的持久数据存储

var deviceInformation: BluetoothDeviceInfo? 

这些信息应该是全局可用和modifyable和持久性(也是如此,当应用程序被杀害)。 我正在考虑使用CoreData,但它感觉有点太多,因为最多连接了1个设备。另外,将自定义类存储为核心数据模型并不是那么好。 另一种选择是Singleton,但当应用程序退出时数据将会丢失。 最后userdefaults将是一个选项,但在那里我会有与自定义类相同的问题,不是吗?

因此,我的问题是什么在这种情况下的最佳选择?

+0

您可以使用NSCoding将自定义类数据存储为用户默认值。 –

+0

你真的需要存储自定义类吗?难道你不能只存储重新创建像String这样的classusijg基本类型所需的三个值吗?然后你可以简单地在UserDefaults中存储数据 – Paulw11

回答

0

可以说你有一个名为CustomModel

class CustomModel: NSObject, NSCoding { 

var customArray : [SomeOtherCustomClass] = [] 

required convenience init?(coder aDecoder: NSCoder) { 
    self.init() 
    // Save your array or any custom objects s follows 
    customArray = aDecoder.decodeObject(forKey: "customArrayKey") as? [SomeOtherCustomClass] ?? [] 

} 

// For getting info 

func encode(with aCoder: NSCoder) { 
    aCoder.encode(customArray, forKey: "customArrayKey") 
} 
} 

现在你自定义的类数据将是持久化类。

如果您发现任何问题,请告诉我。