2015-12-11 12 views
6

Używam następujący CoreFoundation funkcję CFPropertyListCreateDeepCopy: do konwersji niezmiennych obiektów zmienny objects.If dowolnego obiektu jest NULL CFPropertyListCreateDeepCopy powrocie pusty .Is tam żadnej pracy wokół tego.CFPropertyListCreateDeepCopy zwraca nil jeśli wartość jest NULL

self.packageArray = CFBridgingRelease(CFPropertyListCreateDeepCopy(NULL, (CFPropertyListRef)self.packageArray , kCFPropertyListMutableContainersAndLeaves)); 

CFPropertyListCreateDeepCopy fails to process array/dictionary containing NSNull

przykładowy kod

NSArray *immutable = @[ @"a", [NSNull null], @"c" ];  
NSMutableArray *mutable = (__bridge 
    id)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (__bridge 
     CFArrayRef)immutable, kCFPropertyListMutableContainers); 

odpowiedź próbki json z this link

Dzięki z góry.

+2

Czy możesz podać minimalną próbkę kodu? – orkoden

Odpowiedz

0

Po kilku godzinach obejścia problemu rozwiązałem ten problem w następujący sposób.

Wystarczy umieścić poniżej linii podczas konwersji odpowiedzi API na obiekt JSON.

responseString=[responseString stringByReplacingOccurrencesOfString:@"\":null" withString:@"\":\"\""];//To Handle Null Characters 

//Search for below line in your parsing library and paste above code 
data = [responseString dataUsingEncoding:NSUTF8StringEncoding]; 

Więc nie będzie zerowe znaków twojej obiektu JSON, stąd nie ma problemu z użyciem CFPropertyListCreateDeepCopy.

Pozdrawiam!

Powiązane problemy