Vorrei eseguire un iterazione attraverso un CFDictionary (CFPropertyList) e ottenere tutti i valori su un livello specifico.Come enumerare le chiavi CFProperyList/CFDictionary
Questo sarebbe il mio dizionario/proprietà-list:
root
A
foo
0
bar
0
B
foo
10
bar
100
C
foo
20
bar
500
Utilizzando objC sarebbe simile a questa:
//dict is loaded with the dictionary below "root"
NSDictionary *dict = [...];
NSEnumerator *enumerator = [dict keyEnumerator];
NSString *key;
while (key = [enumerator nextObject])
{
NSLog(key);
};
E sarebbe stampare un elenco di chiavi per la console come questo:
A B C
Come si fa a raggiungere questo quando si utilizza C/C++ a livello di CoreFoundation?
grazie un gruppo - che ha fatto il lavoro. – Till
Il metodo CFDictionaryGetKeysAndValues utilizza un puntatore a un puntatore a un array di chiavi. Perché, allora, non si passa l'indirizzo del puntatore "keysTypeRef" (che sarebbe un puntatore a quel puntatore)? – erikprice
'CFDictionaryGetKeysAndValues' prende un puntatore a un array di puntatori (' void ** '), non un puntatore a un puntatore a un array di puntatori (' void *** '). Ricorda, 'CFTypeRef' stesso è un puntatore. –