2017-09-15 88 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") 
} 
} 

現在你自定義的類數據將是持久化類。

如果您發現任何問題,請告訴我。