我们正在努力使固定数组(及其所有固定组件,在几个级别中)是可变的,似乎唯一的方法是遍历嵌套固定数组中的所有级别并创建mutable对象使用arrayWithArray
或mutableCopy
。用于NSArray和NSMutableArray的CFType?
做了一些研究,我发现当使用CFgetCFType()
函数时,NSArray
和NSMutableArray
都返回相同的值(int 19)。
附件是示例代码
NSArray *array = @[@"one", @"two"];
NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:array];
int id1 = CFGetTypeID((__bridge CFTypeRef)(array));
int id2 = CFGetTypeID((__bridge CFTypeRef)(mutableArray));
NSLog(@"Type: %i Type: %i", id1, id2);
为什么,这两种结构类型返回相同的CFTypeID
?这是否意味着NSMutableArray
的易变性隐藏在CFMutableArrayRef
的不透明定义中?