将 MPMediaItem 保存到 NSMutableDictionary
Posted
技术标签:
【中文标题】将 MPMediaItem 保存到 NSMutableDictionary【英文标题】:Save MPMediaItem into a NSMutableDictionary 【发布时间】:2011-12-24 11:35:58 【问题描述】:我正在尝试将 MPMediaItem 保存在 nsmutableDictionary..
实际上我的目的是让用户选择他的歌曲,然后将其保存在应用程序中,然后他可以随时播放。
我已添加此代码以将 MPMediaItem 保存到字典
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:mediaItemCollection.representativeItem forKey:@"name"];
并将其添加到 NSMutableArray 中,然后将该数组添加到 NSUserDefaults 中。
但是当我尝试这样做时,我得到了这个错误:
[NSUserDefaults setObject:forKey:]:
Attempt to insert non-property value '(
desc = Test;
group = Main;
msg = Test;
name = test;
rec = (
name = "<MPConcreteMediaItem: 0x12b040> 8240103918041924793";
number = test;
);
type = "Play File";
)' of class '__NSArrayM'. Note that dictionaries and arrays in property lists must also contain only property values.
【问题讨论】:
【参考方案1】:您不应该保存 MPMediaItems(我什至不知道它们是否有与之关联的键控归档器和取消归档器),而是保存与每个项目关联的唯一标识符(通过 MPMediaItemPropertyPesistentID
属性键引用)。
查看answers to this closely related question,您可能会找到通往您想去的地方的路径。
【讨论】:
【参考方案2】:将其设置为 NSData,然后将其存储以获取您想要的内容。它存档。
【讨论】:
我们如何将其转换为 MPMediaItem以上是关于将 MPMediaItem 保存到 NSMutableDictionary的主要内容,如果未能解决你的问题,请参考以下文章
如何将 MPMediaItem 添加到 MPMediaItemCollection
将 MPMediaItem 添加到 MPMediaItemCollectino