Ad ogni modo per scoprire la classe che è associato a questa variabile?
-
20-09-2019 - |
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
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