我們正在努力使固定數組(及其所有固定組件,在幾個級別中)是可變的,似乎唯一的方法是遍歷嵌套固定數組中的所有級別並創建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
的不透明定義中?