Ios 重新初始化NSArray
如果我必须使用其他值重新初始化NSArray,这样做对吗Ios 重新初始化NSArray,ios,objective-c,nsarray,Ios,Objective C,Nsarray,如果我必须使用其他值重新初始化NSArray,这样做对吗 NSArray *array = [[NSArray alloc] initWithObjects:obj1, obj2, nil]; // ... // some code // ... array = [[NSArray alloc] initWithObjects:obj3, obj4, nil]; 谢谢是的,这绝对正确。新对象与以前的对象完全不同。对象指针现在指向一个新对象,旧对象将被释放,因为您正在使用ARC 这与重新初始化不
NSArray *array = [[NSArray alloc] initWithObjects:obj1, obj2, nil];
// ...
// some code
// ...
array = [[NSArray alloc] initWithObjects:obj3, obj4, nil];
谢谢是的,这绝对正确。新对象与以前的对象完全不同。对象指针现在指向一个新对象,旧对象将被释放,因为您正在使用ARC
这与重新初始化不完全相同,因为您丢弃了对象并获得了一个新的,但NSArray是不可变的,因此这是“重新初始化”它的唯一方法。您的代码不会重新初始化
NSArray
。它只是将一个新对象分配给变量数组
。没关系。您可以使用相同的名称重新初始化NSArray,您不会得到任何错误或警告,但最新的对象将替换为以前的对象。以前的对象将覆盖。为此,您必须使用ARC,否则将出现内存问题 我认为这段代码可能会对你有所帮助。至少,我认为这可能是一个合适的解决方案,尤其是在使用ARC时:
NSObject*obj1=[NSNull];
NSObject*obj2=[NSNull]
NSMUTABLEARRY*arrayObj=[NSMUTABLEARRY arrayWithObjects:obj1,obj2,nil]
[arrayObj removeAllObjects]
arrayObj=[NSMutableArrayWithObjects:obj1、obj2、nil]
我希望它能帮助您:)将NSMutableArray用于this@JustSid是的,我用的是Arc,你能解释一下你在什么情况下这样使用吗?@Alex没什么特别的,这只是一个疑问作为奖励,OP可以加入现代世界并使用
@[obj3,obj4]
你能解释一下你在什么情况下这样使用吗??