NSNumber for MPMediaItemPropertyPersistentID to NSString e vice-versa

Estou percorrendo todas as músicas da biblioteca de músicas de um iPhone usando o seguinte 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];

Coisas bem básicas.

Estou recebendo o PersistentID como umNSString porque preciso gravá-lo em um arquivo XML (para transmissão em uma rede para outro dispositivo). Daí a razão de eu não poder simplesmente deixá-lo como umNSNumber.

O outro dispositivo solicitará que o iPhone reproduza uma faixa transmitindo o PersistentID novamente.

Neste ponto, o iPhone tem umNSString do PersistentID da faixa que ele deve reproduzir.

Seria complicado percorrer todas as músicas novamente e comparar os IDs persistentes até encontrar a faixa que desejo, então estou tentando usar oMPMediaPropertyPredicate para que o iPhone me procure.

Estou usando o seguinte código para a pesquisa:

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];

OndepersistentID é oNSString de mais cedo.

Estranhamente, isso funciona para algumas músicas, não para outras. ou seja, às vezes oitems matriz não está vazia, mesmo que eu esteja passando umNSString, não umNSNumber.

Gostaria de saber se existe uma maneira de converter meuNSString de volta aoNSNumber veio e como eu posso fazer isso.

ATUALIZAR: Eu tentei o NSNumberFormatter, também tentei algo como:

[NSNumber numberWithFloat:[persID floatValue]];

Eu tentei todas as maneiras padrão de fazê-lo sem prevalecer.

questionAnswers(4)

yourAnswerToTheQuestion