【问题标题】:Save MPMediaItem into a NSMutableDictionary将 MPMediaItem 保存到 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.

【问题讨论】:

    标签: iphone nsmutabledictionary mpmediaitem


    【解决方案1】:

    您不应该保存 MPMediaItems(我什至不知道它们是否有与之关联的键控归档器和取消归档器),而是保存与每个项目关联的唯一标识符(通过 MPMediaItemPropertyPesistentID 属性键引用)。

    查看answers to this closely related question,您可能会找到通往您想去的地方的路径。

    【讨论】:

      【解决方案2】:

      将其设置为 NSData,然后将其存储以获取您想要的内容。它存档。

      【讨论】:

      • 我们如何将其转换为 MPMediaItem
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多