下面代码段中Parsing的区别是什么。 哪些代码段在解析中更快?
NSArray *arr = [[NSArray alloc] initWithObjects:@"Apple",@"Macbook", nil];
NSMutableArray *data = (NSMutableArray *)arr;
(和)
NSArray *arr = [[NSArray alloc] initWithObjects:@"Apple",@"Macbook", nil];
NSMutableArray *data = [NSMutableArray arrayWithArray:arr];
最佳答案
你在两个片段中都有同样的错误,你为对象分配了内存,然后为数据分配了其他东西,这让你失去了之前的(并且有内存泄漏),例如这个:
NSMutableArray *data = [[NSMutableArray alloc] init];
data = [NSMutableArray arrayWithArray:arr];
应该是
NSMutableArray *data = [NSMutableArray arrayWithArray:arr];
现在是问题本身:
第一种情况是个坏主意,你转换了 NSArray,但你不能修改它,因为你并没有真正改变它的类型,只是将它分配给 NSMutaleArray 指针。
第二种情况将创建一个新的可变 NSMutableArray,其中包含 NSArray 的内容,这很酷,您现在可以更改此数组。
关于objective-c - NSArray 解析有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10233486/