2011-02-01 14 views
5

Tratando el siguiente código:Obtener el año del álbum para el artículo en la biblioteca del 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); 
} 

En todos los casos que recibo de nil NSDates ... Sin embargo, en la biblioteca del iPod puedo ver fechas, por lo que la información debe estar disponible. ¿Cuál es la forma correcta de obtenerlo?

+0

fecha La liberación sólo se puede acceder usando iOS 4 o superior. ¿Cuál es tu versión objetivo? –

+0

Usando iOS SDK 4.2, destino de implementación = iOS 4.0, probando en iPad con 4.2.1 y iPod de segunda generación con 4.2.1 ... – ivanzoid

Respuesta

19

Bueno, creo que lo he descubierto. Estaba pensando que la columna 'Año' en iTunes corresponde a MPMediaItemPropertyReleaseDate en la API, pero está mal. Mis artículos en realidad no tenían información de fecha de lanzamiento.

También encontré la forma de obtener información 'Year' (que necesitaba), pero por desgracia, en forma no documentada:

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

Aún válido para iOS 5.1:/¡Pero gracias por la solución! – miho

+0

no funciona en ios6 – Andy

+0

@Andy Works en iOS 6.0 para mí. – soheilpro

Cuestiones relacionadas