由于某种原因,此示例代码有效:
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
使用此功能时不允许提及的任何内容。我怀疑它与方法检查属性是否可变的方式有关,但我不能用事实来支持这一点。
有任何想法吗?