iCulture forum | iPhone, iPad,  iPod touch, Apple TV en iOS

iCulture forum | iPhone, iPad, iPod touch, Apple TV en iOS (https://forum.iculture.nl/)
-   Ontwikkelen voor iOS (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/)
-   -   Save MPMediaItemCollection (https://forum.iculture.nl/f133/development/f58/ontwikkelen-voor-ios/95706-save-mpmediaitemcollection.html)

Jeroen0704 19-07-11 18:47

Save MPMediaItemCollection
 
Hee,

Weet er iemand hoe ik een MPMediaItemCollection kan opslaan en later weer opvragen? Je kan namelijk zo ver ik weet niet de huidige MPMediaItemCollection opvragen.

Groeten Jeroen

JornZ 20-07-11 09:37

Ik heb niet het exacte antwoord voor je. Maar aangezien dit een klasse is die niet standaard een writeToFile method biedt zou ik zoeken naar een oplossing waarbij je zorgt dat je het middels een ander object kan opslaan. Wellicht eens onderzoeken hoe dit werkt met NSData of als je geluk hebt lukt het door het object simpelweg in een array te plaatsen en deze op te slaan (voorwaarde is wel dat MPMediaItemCollection middels een plist gerepresenteerd kan worden).

Whacko 20-07-11 10:58

De MPMediaItems in de collection hebben toch een uniek ID? dan sla je gewoon een lijsjte met strings op.

Jeroen0704 20-07-11 11:01

Citaat:

Oorspronkelijk geplaatst door Whacko (Bericht 692673)
De MPMediaItems in de collection hebben toch een uniek ID? dan sla je gewoon een lijsjte met strings op.

Je bedoeld de presistent id's? Die kan ik dan dus in een array oplsaan?

JornZ 20-07-11 13:03

Citaat:

Oorspronkelijk geplaatst door Jeroen0704 (Bericht 692677)
Je bedoeld de presistent id's? Die kan ik dan dus in een array oplsaan?

Probeer eens of iets dergelijks werkt:
Code:

// Save
NSArray *saveArray = [NSArray arrayWithObject:myMPMediaItemCollection];
[saveArray writeToFile:@"myMPMediaCollection.plist" atomically:YES];
 
// Load
NSArray loadArray = [NSArray arrayWithContentsOfFile:@"myMPMediaCollection.plist"];
myLoadedMPMediaItemCollection = [loadArray objectAtIndex:0];

Je zult waarschijnlijk alleen nog wat extra code nodig hebben om te zorgen dat je op de juiste locatie probeert te saven (documents van jouw app).

Jeroen0704 20-07-11 13:04

Het is gelukt. Bedankt!
Ik heb de media items in een array gezet en deze array omgezet tot NSData zoals JornZ zij en deze weet opgeslagen met NSUserdefaults.

Code:

NSArray *mediaItems = [self.userMediaItemCollection items];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:mediaItems];
[defaults setObject:data forKey:@"MediaItemsKey"];

Nu nog even een laatste testronden draaien en dan is de app klaar voor de App Store :)


Alle tijden zijn GMT +2. Het is nu 09:04.