Swift 3 UserDefaults 设置 NSMutableArray

Posted

技术标签:

【中文标题】Swift 3 UserDefaults 设置 NSMutableArray【英文标题】:Swift 3 UserDefaults set NSMutableArray 【发布时间】:2017-11-25 09:56:04 【问题描述】:

Saving NSMutableArray with NSUserDefaults in Swift Returns Nil

setObject 方法删除了我这样的代码并且不起作用。我尝试了所有设置类型仍然无法正常工作。有什么想法吗?

var banksAccount : NSMutableArray = []

for bankJson in (self.users?[0].Banks)! 
    self.banksAccount.add(bankJson)


UserDefaults.standard.set(self.banksAccount, forKey: "myBanksAccounts")
UserDefaults.standard.synchronize()

【问题讨论】:

【参考方案1】:

为了节省

let cacheArrayData = NSKeyedArchiver.archivedData(withRootObject: banksAccount)
                    UserDefaults.standard.set(cacheArrayData, forKey: "EventItems")

用于检索

let retriveArrayData = UserDefaults.standard.object(forKey:  "EventItems") as? NSData
                let retriveArray = NSKeyedUnarchiver.unarchiveObject(with: retriveArrayData! as Data) as? NSArray
                self.eventsArray = NSMutableArray(array:retriveArray!)

【讨论】:

2017-11-25 14:18:45.017745+0300 MyApp[22186:298457] *** NSForwarding: 警告: 'MyApp.Bank' 类的对象 0x600000299f00 没有实现 methodSignatureForSelector: -- 麻烦前方无法识别的选择器-[MyApp.Bank replacementObjectForKeyedArchiver:] 2017-11-25 14:18:45.018325+0300 MyApp[22186:298457] 无法识别的选择器-[MyApp.Bank replacementObjectForKeyedArchiver:] @GökhanÇokkeçeci银行帐户这应该是NSArray

以上是关于Swift 3 UserDefaults 设置 NSMutableArray的主要内容,如果未能解决你的问题,请参考以下文章

Swift - UserDefaults 设置未保存在框架内

Swift 3和UserDefaults

Swift 3 - UserDefaults 无缘无故自动清除

userdefaults 使用问题 swift 3

如何将完整的 UserDefaults 列表放入 tableview - Swift 3

如何使用 userDefaults 保存打印数组(swift 3)