2014-01-05 1 views
0

Objective-C에서 두 변수를 바꾸는 함수를 작성하고 모든 유형 (기본 및 클래스 개체)에 적용 할 수 있어야합니다. 지금까지 xor 스왑을 찾았지만 부동 소수점이나 클래스 객체가 아닌 정수에서만 작동합니다. 그런 함수를 작성하는 일반적인 방법을 찾았지만 몇 가지 응답에서 이해했습니다 Objective-C는 generic을 지원하지 않습니다 프로그래밍, 그래서 나는 C++의 템플릿이나 자바의 일반적인 클래스처럼 할 수 없다. Objective-C에서 동일한 유형 (기본 및 클래스 객체)의 두 변수를 교환하는 방법이 있습니까?두 개체를 스왑 Objective-C

+1

순수하기 때문에 ObjC는 C의 완벽한 수퍼 셋이기 때문에 기술적으로 중복 대답은 (아니오) 동안 당신이 순수 C. 이것은이 작업을 수행하는 것처럼이 포인터를 교환 할 수 있습니다 http://stackoverflow.com/questions/2637856/is-there-an-equivalent-of-stdswap-in-c와 동일합니다. KennyTM의 답변을 특히 추천합니다. –

+0

@RobNapier KennyTM의 솔루션이 효과가있었습니다. –

+0

또한 memcpy 기반 솔루션을 제공하는 http://stackoverflow.com/questions/3982348/implement-generic-swap-macro-in-c를보십시오 (그러나 객체와 함께 안전하게 작동하지는 않습니다). –

답변

2

코드에 "가지고있는"개체가 없으므로 개체를 바꿀 수 없습니다. 개체가 들어있는 아니요 변수가 있습니다. 객체에 대한 포인터가 있습니다.

당신은 포인터 C.