Сохраните MPMediaItem в NSMutableDictionary - PullRequest
4 голосов
/ 24 декабря 2011

Я пытаюсь сохранить 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.

Ответы [ 2 ]

4 голосов
/ 24 декабря 2011

Вы не должны сохранять MPMediaItems (я даже не знаю, имеют ли они связанные с ними архиваторы и разархиваторы), но должны сохранять уникальный идентификатор (на который ссылаются через MPMediaItemPropertyPesistentID ключи свойств) связан с каждым элементом.

Ознакомьтесь с ответами на этот тесно связанный вопрос , и вы можете найти путь, чтобы добраться туда, куда вы хотите.

1 голос
/ 13 января 2014

Установите для NSData, а затем сохраните его, чтобы получить то, что вы хотите. Это архивы.

...