NSCFArray不作为NSArray

MrS*_*eko 2 objective-c nsarray

我正在尝试将数据保存到Iphone上的XML文件中.为此,我加载整个XML,添加新数据并再次保存.我尝试存储新数据时会出现问题

 [mArray addObject:newData];
Run Code Online (Sandbox Code Playgroud)

方法崩溃,因为mArray不是NSMutableArray,相反,即使我对它应用了mutableCopy方法,它也是一个NSCFArray.据我所知,NSCFArray是NSArray的免费桥接,因此我无法理解为什么mutablyCopy方法不起作用.任何的想法??

NSMutableDictionary *wholeXML = [[NSMutableDictionary alloc] init];
wholeXML = xmlData;

NSArray *array = [[NSArray alloc] init];
NSMutableArray *mArray = [[NSMutableArray alloc] init];
array = [wholeXML objectForKey:@"Key"];
mArray = [a mutableCopy];
Run Code Online (Sandbox Code Playgroud)

Eim*_*tas 5

NSCFArray是一个私有子类,当您使用NSArray工厂方法或初始化程序执行操作时,它会被实例化.你做了太多的初始化.试试这个简化版本:

NSMutableDictionary *wholeXML = [[NSMutableDictionary alloc] initWithDictionary:xmlData];
NSMutableArray *mArray = [[NSMutableArray alloc] initWithArray:[wholeXML valueForKey:@"Key"]];
Run Code Online (Sandbox Code Playgroud)