Wie CFProperyList / CFDictionary-Schlüssel aufgelistet werden

8

Ich möchte durch ein CFDictionary (CFPropertyList) iterieren und alle Werte auf einer bestimmten Ebene erhalten.

Dies wäre mein Wörterbuch / meine Eigentumsliste:

%Vor%

Mit ObjC würde es ungefähr so ​​aussehen:

%Vor%

Und es würde eine Liste von Schlüsseln auf der Konsole wie folgt ausdrucken:

%Vor%

Wie erreichen Sie dies, wenn Sie C / C ++ auf CoreFoundation-Ebene verwenden?

    
Till 17.02.2010, 18:46
quelle

3 Antworten

10

Basierend auf Code aus SeeMyFriends :

%Vor%

Sie können jetzt durch die Zeiger in keys[] gehen. Vergiss nicht free(keys) wenn du fertig bist.

Denken Sie daran, dass Wörterbuchschlüssel keine Zeichenfolgen sind. Sie sind void* (deshalb haben sie sich die Mühe gemacht, keysTypeRef in keys zu setzen). Beachten Sie auch, dass ich hier nur Schlüssel abgegriffen habe, aber Sie könnten auch Werte gleichzeitig erhalten. Ein detaillierteres Beispiel finden Sie im SeeMyFriends-Code.

    
Rob Napier 17.02.2010, 19:03
quelle
41

Verwenden Sie CFDictionaryApplyFunction , um ein Wörterbuch zu durchlaufen.

%Vor%     
kennytm 17.02.2010 19:09
quelle
4

CFCopyDescription ist hilfreich beim Debuggen ...

%Vor%     
hewigovens 30.03.2012 04:14
quelle