NSNumber para MPMediaItemPropertyPersistentID a NSString y viceversa

Estoy recorriendo todas las canciones de la biblioteca de música de un iPhone usando el siguiente código:

NSArray * songs = [[NSArray alloc] initWithArray:[[MPMediaQuery songsQuery] collections]];

for (MPMediaItemCollection * item in songs){

    NSString * persistentID = [[[item representativeItem] valueForProperty:MPMediaItemPropertyPersistentID] stringValue];
    // Do something with it.
}

[songs release];

Cosas bastante básicas.

Estoy obteniendo el PersistentID comoNSString porque necesito escribirlo en un archivo XML (para transmitirlo a través de una red a otro dispositivo). De ahí la razón por la que no puedo dejarlo como unNSNumber.

El otro dispositivo le pedirá al iPhone que reproduzca una pista transmitiendo el PersistentID nuevamente.

En este punto, el iPhone tiene unNSString del PersistentID de la pista que debería reproducir.

Sería agotador recorrer cada canción nuevamente y comparar PersistentIDs hasta encontrar la pista que quiero, así que estoy tratando de usar elMPMediaPropertyPredicate para que el iPhone me busque.

Estoy usando el siguiente código para la búsqueda:

MPMediaPropertyPredicate * predicate = [MPMediaPropertyPredicate predicateWithValue:persistentID forProperty:MPMediaItemPropertyPersistentID];

MPMediaQuery * songsQuery = [[MPMediaQuery alloc] init];
[songsQuery addFilterPredicate:predicate];

if ([[songsQuery items] count]){

    MPMediaItem * item = [[songsQuery items] objectAtIndex:0];
    // Play item.
}

[songsQuery release];

DóndepersistentID es elNSString de antes

Extrañamente, esto funciona para algunas canciones, no para otras. es decir, a veces elitems matriz no está vacía, aunque estoy pasando unNSString, no unNSNumber.

Me pregunto si hay una manera de convertir miNSString de vuelta aNSNumber vino, y cómo puedo hacer eso.

ACTUALIZAR: He probado el NSNumberFormatter, también he probado algo como:

[NSNumber numberWithFloat:[persID floatValue]];

He intentado todas las formas estándar de hacerlo sin prevalecer.

Respuestas a la pregunta(4)

Su respuesta a la pregunta