2011-02-01 2 views
5

Cercando il seguente codice:Ricevi l'anno dell'album per l'elemento nella libreria di iPod?

// Per albums 
MPMediaQuery *albumsQuery = [MPMediaQuery albumsQuery]; 
NSArray *collections = [albumsQuery collections]; 

for (MPMediaItemCollection *collection in collections) 
{ 
    NSDate *collectionReleaseDate = [collection valueForProperty: MPMediaItemPropertyReleaseDate]; 
    NSLog(@"collection release date: %@", collectionReleaseDate); 

    MPMediaItem *representativeItem = [collection representativeItem]; 
    NSDate *representativeItemReleaseDate = [representativeItem valueForProperty: MPMediaItemPropertyReleaseDate]; 
    NSLog(@"representativeItem release date: %@", representativeItemReleaseDate); 
} 

// Just per item 
MPMediaQuery *query = [[MPMediaQuery alloc] init]; 
NSArray *items = [query items]; 

for (MPMediaItem *item in items) 
{ 
    NSDate *date = [item valueForProperty: MPMediaItemPropertyReleaseDate]; 
    NSLog(@"release date: %@", date); 
} 

In tutti i casi che ricevo nil di per NSDates ... Ma nella libreria iPod posso vedere le date, quindi le informazioni devono essere disponibili. Qual è il modo corretto per ottenerlo?

+0

data Il rilascio è accessibile solo con iOS 4 o superiore. Qual è la tua versione di destinazione? –

+0

Utilizzo di iOS SDK 4.2, obiettivo di distribuzione = iOS 4.0, test su iPad con 4.2.1 e iPod 2nd gen con 4.2.1 ... – ivanzoid

risposta

19

Beh, penso di aver capito. Stavo pensando che la colonna "Anno" in iTunes corrisponda a MPMediaItemPropertyReleaseDate in API - ma è sbagliata. I miei articoli in realtà non avevano informazioni sulla data di rilascio.

Ho anche scoperto come ottenere informazioni 'Anno' (che mi serviva), ma purtroppo in modo non documentato:

MPMediaItem *item = ...; 
NSNumber *yearNumber = [item valueForProperty:@"year"]; 
if (yearNumber && [yearNumber isKindOfClass:[NSNumber class]]) 
{ 
    int year = [yearNumber intValue]; 
    if (year != 0) 
    { 
     // do something with year 
    } 
} 
+0

Ancora valido per iOS 5.1:/Ma grazie per la correzione! – miho

+0

non funziona su ios6 – Andy

+0

@Andy funziona su iOS 6.0 per me. – soheilpro