gpt4 book ai didi

ios - 如果任何值为 NULL,CFPropertyListCreateDeepCopy 返回 nil

转载 作者:可可西里 更新时间:2023-11-01 04:00:48 27 4
gpt4 key购买 nike

我正在使用以下 CoreFoundation 函数 CFPropertyListCreateDeepCopy:用于将不可变对象(immutable对象)转换为可变对象。如果任何对象为 NULL,则 CFPropertyListCreateDeepCopy 返回空。是否有解决此问题的方法。

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);

来自 this link 的示例 json 响应

提前致谢。

最佳答案

经过几个小时的变通,我已经通过以下方式解决了这个问题。

将 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 没有问题。

干杯!

关于ios - 如果任何值为 NULL,CFPropertyListCreateDeepCopy 返回 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34219638/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com