在 NSMutableDictionary 中设置 NSURLSessionDownloadTask

Posted

技术标签:

【中文标题】在 NSMutableDictionary 中设置 NSURLSessionDownloadTask【英文标题】:Set NSURLSessionDownloadTask in NSMutableDictionary 【发布时间】:2016-06-04 17:36:53 【问题描述】:

我在NSMutableDictionary 中设置了NSURLSessionDownloadTask。然后我想把这本词典保存在NSUserDefaults

我知道我无法将自定义对象保存在 NSUserDefaults 中,并且经过搜索,我找到了这个答案:How to store custom objects in NSUserDefaults,但我无法在我的代码中实现。

这是我的代码的一部分:

[self.downloadTasksDictionary setObject:dlTask forKey:[NSString stringWithFormat:@"%@",customId]];

[[NSUserDefaults standardUserDefaults] setObject:self.downloadTasksDictionary forKey:@"DownloadTaskDict"];
[[NSUserDefaults standardUserDefaults] synchronize];

有什么方法可以将这个NSMutableDictionary 保存到NSUserDefaults 中吗?

谢谢。

【问题讨论】:

【参考方案1】:

您需要为此使用 NSKeyArchiver。看看这个 SO 帖子:Save custom objects into NSUserDefaults 和 Why does NSUserDefaults fail to save NSMutableDictionary?

但是,为什么不保存请求描述符而不是 downloadTask 对象呢?

在我的项目中,我有一个 NetworkManager,它从一个结构体 NetworkRequest 创建一个 NetworkTask。该结构可以从 json 创建。效果很好。

【讨论】:

以上是关于在 NSMutableDictionary 中设置 NSURLSessionDownloadTask的主要内容,如果未能解决你的问题,请参考以下文章

试图在 NSMutableDictionary 中设置 Number 类型的对象并得到奇怪的警告

如何快速在 NSUserDefaults 中设置字典?

尝试在 NSMuableDictionary 中设置值时应用程序崩溃

NSMutableDictionary setObject:forKey (ios 6 without ARC) 结果为 NULL

如何将 NSString 值设置为 NSMutable 字典?

在xib中设置accessibilityIdentifier nil时,必须从用户定义的运行时属性中设置