gpt4 book ai didi

objective-c - CFPropertyListCreateDeepCopy 无法处理包含 NSNull 的数组/字典

转载 作者:太空狗 更新时间:2023-10-30 03:51:18 27 4
gpt4 key购买 nike

出于某种原因,此示例代码有效:

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

并且此代码生成 nil 作为转换的结果:

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

我试图找到在使用此函数时不允许提及 NSNull 的任何内容。我怀疑这与方法检查属性是否可变的方式有关,但我无法用事实证明这一点。

有什么想法吗?

最佳答案

正如来自苹果开发者论坛的好心人所指出的,问题是属性列表结构对其可以使用的数据类型相当严格。 NSNull 不是允许的之一。

来自 apple docs :

Property lists are constructed from the basic Core Foundation types CFString, CFNumber, CFBoolean, CFDate, and CFData.

关于objective-c - CFPropertyListCreateDeepCopy 无法处理包含 NSNull 的数组/字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12159205/

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