【发布时间】:2014-01-05 16:26:12
【问题描述】:
我想在 Objective-C 中编写一个交换两个变量的函数,它应该适用于所有类型(原始对象和类对象)。到目前为止,我发现的是 xor 交换,但这仅适用于整数,但不适用于浮点数或类对象,我寻找了一种通用方法来编写此类函数,但正如我从几个回复中了解到的那样,Objective-C 不支持泛型编程,所以我不能像 C++ 中的模板或 Java 中的泛型类那样做。有没有办法在 Objective-C 中实现任意两个相同类型的变量(原始对象和类对象)的交换?
【问题讨论】:
-
虽然从技术上讲不是重复的,但因为 ObjC 是 C 的完美超集,所以答案(否)与 stackoverflow.com/questions/2637856/… 相同。我特别推荐 KennyTM 的答案。
-
@RobNapier KennyTM 的解决方案奏效了。
-
另请参阅 stackoverflow.com/questions/3982348/…,它确实提供了基于 memcpy 的解决方案(但它不能安全地处理对象)。
标签: objective-c function generics swap