gpt4 book ai didi

objective-c - NSMutableArray arrayWithArray 与 NSArray mutableCopy 比较相同?

转载 作者:太空狗 更新时间:2023-10-30 03:34:36 25 4
gpt4 key购买 nike

给定以下代码示例,newMutableArrray 变量是根据两个不同的初始化而不同,还是相同?

NSArray *originalArray = @[obj1, obj2, oj3];

NSMutableArray *newMutableArray = nil;

if (thereIsSomeDifference) {
newMutableArray = [NSMutableArray arrayWithArray:originalArray];
}
else {
newMutableArray = [originalArray mutableCopy];
}

最佳答案

不!这些初始化之间有两个区别:

  1. 保留计数:在第一种情况下,你得到一个自动释放的对象,在第二种情况下,你得到一个保留的对象,你需要在之后释放它(这不适用于 ARC)

  2. 如果 originalArray 为 nil,在第一种情况下,您将获得一个包含 0 项的可变数组,在第二种情况下,您将获得 nil(因为向 nil 发送消息会返回 nil)。在你的例子中,很明显 originalArray 不是 nil 但在现实生活中你可以达到这种情况(我刚刚遇到过这种情况)

关于objective-c - NSMutableArray arrayWithArray 与 NSArray mutableCopy 比较相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14186410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com