Domanda

Voglio scoprire il tipo di dati che io mando tramite una funzione di invio tramite GameKit. Fondamentalmente sto memorizzazione di tali dati in CFPropertyListRef. DataReceived è di tipo NSMutatableData.

- (void) receiveData:(NSMutableData *)data fromPeer:(NSString *)peer inSession: (GKSession *)session context:(void *)context {
    // Read the bytes in data and perform an application-specific action.
    [dataReceived setData:data];

if([dataReceived length]> 0 ) {
    CFStringRef errorString;
    CFPropertyListRef plist = CFPropertyListCreateFromXMLData(kCFAllocatorDefault, (CFDataRef)dataReceived, kCFPropertyListMutableContainers, &errorString);
   }

Il mio obiettivo è quello di scoprire se plist è di tipo NSDictionary, dal momento che vorrei per gestire i dati in modo appropriato

È stato utile?

Soluzione

È possibile utilizzare CFGetTypeID () per questo:

if(CFDictionaryGetTypeID() == CFGetTypeID(plist))
  // do something

Se si preferisce Objective-C, dare un'occhiata a NSPropertyListSerialization .

Altri suggerimenti

È possibile farlo, ma questo non vuol dire si dovrebbe - un elenco di proprietà può avere un dizionario o un array come elemento di livello superiore. Che cosa vuoi di special-case un dizionario per?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top