这是在 Objective C 中交换两个 ivar 数组的便捷方法吗?
- (void) foo {
NSArray *aux;
aux = array1;
array2 = array1;
array1 = array2;
}
还有其他选择吗?在某些情况下可能会出现与retainCount相关的问题吗? 我很困惑,因为在我正在审查的程序中,交换是通过以下方式完成的:
- (void) foo {
NSArray *aux;
aux = array1;
[aux retain];
array2 = array1;
array1 = array2;
[aux release];
}
最佳答案
它们都不起作用,您没有在任何地方使用 aux 变量,最后它们都将指向相同的内存位置,请执行以下操作:
- (void) foo {
NSArray *aux;
aux = array1;
array1 = array2;
array2 = aux;
}
关于objective-c - 如何在 obj-c 中交换两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6918062/