objective-c - 如何在 obj-c 中交换两个数组

标签 objective-c arrays swap

这是在 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/

相关文章:

python - 交换功能输出与预期不同

pythonic 交换 x,y = y,x 不起作用?

c# - 如何交换列表中的 2 个元素

ios - 通过触摸停止和开始动画。 objective-c

ios - 循环#import,我做错了吗?

iphone - __clang_analyzer__ 的重要性

objective-c - 如何从过滤的 NSTableView 中一致地获取选定的单元格值?

c - 从二维字符数组打印字符串

c++ - 如何将数组传递给 C++ 中的类

c - 通过调用 getchar 改变程序的行为