在 Swift 中使用 NSUserDefaults 保存 NSMutableArray 返回 Nil

Posted

技术标签:

【中文标题】在 Swift 中使用 NSUserDefaults 保存 NSMutableArray 返回 Nil【英文标题】:Saving NSMutableArray with NSUserDefaults in Swift Returns Nil 【发布时间】:2014-11-07 09:39:35 【问题描述】:

我有一个NSMutableArray。这是我使用NSUserDefaults 保存它的方法:

var defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(downloadedFile as NSMutableArray, forKey: "myKey")

这里是我如何检索它:

var downloadedFilesFromUserDefaults:NSMutableArray = defaults.objectForKey("myKey") as NSMutableArray

【问题讨论】:

无论我做什么,它都会返回 nil。是有bug还是什么? 你做了 defaults.synchronize() 吗? 【参考方案1】:

看看这个,试着像这样保存你的数组!因为这非常有效!

var arr:NSMutableArray = NSMutableArray(objects: "ASD","aSd")
    NSUserDefaults.standardUserDefaults().setObject(arr, forKey: "Array")
    NSUserDefaults.standardUserDefaults().synchronize()

点击按钮

NSLog("%@", NSUserDefaults.standardUserDefaults().objectForKey("Array") as NSMutableArray)

【讨论】:

【参考方案2】:

看起来 swift 以某种方式释放了我需要确保我的对象不为零的对象。

【讨论】:

以上是关于在 Swift 中使用 NSUserDefaults 保存 NSMutableArray 返回 Nil的主要内容,如果未能解决你的问题,请参考以下文章

NSUserDefault 同步后退按钮 swift

我如何访问 iOS 项目的 NSUserDefault 以做出原生反应?

在swift 2中恢复消耗品(硬币)

使用 Alamofire 时如何将令牌存储在 NSUserDefault 中?

如何在 appdelegate 中使用 applicationDidEnterBackground 保存 NSUserDefault

NSUrl 未在 NSUserDefault 中存储为绝对字符串