Per qualche ragione questo codice di esempio funziona:CFPropertyListCreateDeepCopy non riesce a elaborare serie/dizionario contenente NSNull
NSArray *immutable = @[ @"a", @"b", @"c" ];
NSMutableArray *mutable = (__bridge id)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (__bridge CFArrayRef)immutable, kCFPropertyListMutableContainers);
e questo codice produce nil
a seguito della conversione:
NSArray *immutable = @[ @"a", [NSNull null], @"c" ];
NSMutableArray *mutable = (__bridge id)CFPropertyListCreateDeepCopy(kCFAllocatorDefault, (__bridge CFArrayRef)immutable, kCFPropertyListMutableContainers);
ho cercato di trovare qualsiasi menzione di NSNull
non è consentita quando si utilizza questa funzione. Ho il sospetto che abbia qualcosa a che fare con il modo in cui il metodo esamina se la proprietà è mutabile o meno, ma non posso davvero confermarlo con i fatti.
Qualche idea?
Sei a conoscenza di un'alternativa o di una soluzione alternativa per accettare un valore nullo, perché lo stiamo utilizzando sui dati di un'API JSON che ha "null" in alcuni punti? – Sathvik
secondo questa fonte http://www.opensource.apple.com/source/CF/CF-1153.18/CFPropertyList.c (cerca CFPropertyListRef CFPropertyListCreateDeepCopy) non è del tutto possibile. Forse provare a sostituire null con una costante predefinita che è improbabile da incontrare nel tuo set di dati? –