2015-12-11 7 views
6

Я использую следующую функцию CoreFoundationCFPropertyListCreateDeepCopy: для преобразования неизменных объектов Мутабельном objects.If любых из объекта обнулить CFPropertyListCreateDeepCopy возвращаюсь пустая .а там любой работа вокруг этого.CFPropertyListCreateDeepCopy возвращает ноль, если значение равно NULL

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

CFPropertyListCreateDeepCopy fails to process array/dictionary containing NSNull

образец кода

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

образец JSON ответ от this link

Заранее спасибо.

+2

Можете ли вы предоставить минимальный образец кода для этого? – orkoden

ответ

0

После нескольких часов обхода, я решил эту проблему ниже.

Просто поместите ниже строки при преобразовании ответа API на объект 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]; 

Так что не будет нулевых символов в вашем объекте JSON, следовательно, нет проблемы с использованием CFPropertyListCreateDeepCopy.

Cheers !!

Смежные вопросы