在 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 类型的对象并得到奇怪的警告
尝试在 NSMuableDictionary 中设置值时应用程序崩溃
NSMutableDictionary setObject:forKey (ios 6 without ARC) 结果为 NULL