et merci d'avance pour votre temps. J'essaie de filtrer certains types de listes de lecture pour une application iPhone (génie et On-the-go, en particulier). la documentation indique que l'attribut de propriété MPMediaPlaylistPropertyPlaylistAttributes renvoie les attributs associés à une playlist sous la forme d'un NSNumber contenant un objet NSInteger. La documentation indique également ces valeurs possibles pour cette propriété:Utilisation de MPMediaPlaylistPropertyPlaylistAttributes et opérateurs bit à bit sur NSInteger- Objective C (iPhone)
e
num {
MPMediaPlaylistAttributeNone = 0,
MPMediaPlaylistAttributeOnTheGo = (1 << 0),
MPMediaPlaylistAttributeSmart = (1 << 1),
MPMediaPlaylistAttributeGenius = (1 << 2)
};
typedef NSInteger MPMediaPlaylistAttribute;
Je veux connecter la valeur à la borne, donc je l'ai utilisé
NSLog (@ "valeur de l'attribut playlist:% @ ", [[playlist valueForProperty: MPMediaPlaylistPropertyPlaylistAttributes] stringValue]);
Cependant, il imprime une valeur de 0 à chaque fois. Cela signifie que chaque liste de lecture a l'attribut "MPMediaPlaylistAttributeNone", mais cela n'a pas de sens, car elle passe par beaucoup de génie et sur les playlists aller.
voici mon code entier:
MPMediaQuery *myPlaylistsQuery = [MPMediaQuery playlistsQuery];
NSLog(@"number of playlists total:%d", [[myPlaylistsQuery collections] count]);
NSArray *playlists = [myPlaylistsQuery collections];
for (MPMediaPlaylist *playlist in playlists) {
NSInteger theAttributes;
theAttributes = [[playlist valueForProperty:MPMediaPlaylistPropertyPlaylistAttributes] integerValue];
NSLog(@"attribute:%d of playlist:%@", theAttributes, [playlist valueForProperty:MPMediaPlaylistPropertyName]);
}
et voici le résultat, quand je lance l'application sur mon iphone.plusieurs de ces listes de lecture sont en fait des listes de génie:
attribut: 0 playlist: Acheté
attribut: 0 playlist: Acheté sur mon iPhone
attribut: 0 playlist: Army of Them
attribut: 0 playlist: attribut bleu
: 0 playlist: Closer
attribut: 0 playlist: Crazy
attribut: 0 playlist: Mad About You
attribut: 0 playlist: attribut de minuit
: 0 playlist: Something Elephants
attribut: 0 playlist: Supermassive Black Hole
attribut: 0 playlist: Take Me Away
attribut: 0 playlist: Le Mixed Tape
attribut: 0 playlist: attribut Temps
: 0 playlist: All Around Me attribut
: 0 playlist: anna cd
attribut: 0 playlist: Av
attribut: 0 playlist: av 2
attribut: 0 playlist: Crois
attribut: 0 playlist: BH
attribut: 0 playlist: Boulevard of Broken Dreams
attribut: 0 playlist: 1 voiture
attribut: 0 playlist: voiture 2
Attribut: 0 de la liste de lecture: voiture 3
Avez-vous des idées pour lesquelles chaque liste de lecture est associée à 0 pour les attributs?
Encore une fois, merci pour votre temps!
tout d'abord, merci pour la réponse. vous avez raison, et je suis retourné et a changé ce peu de code. il se lit maintenant: \t \t \t NSInteger theAttributes; \t \t \t \t \t \t theAttributes = [[playlist valueForProperty: MPMediaPlaylistPropertyPlaylistAttributes] IntegerValue]; \t \t \t NSLog (@ "attribut:% d de la liste de lecture:% @", theAttributes, [playlist valueForProperty: MPMediaPlaylistPropertyName]); Mais, le résultat est toujours le même, et chaque playlist a un attribut de "0". Ai-je besoin d'obtenir le NSInteger d'une manière différente, ou est-ce que MPMediaPlaylistPropertyPlaylistAttributes n'est pas vraiment supporté par le SDK iphone 3.0? merci! –