交换对象。不能理解它

时间:2010-09-26 19:18:59

标签: iphone objective-c

好的,如果我有3个物体。

ObjectType *objX;
ObjectType *objY;
ObjectType *tempObjHolder;

objX = [[alloc ObjectType] init];
objY = [[alloc ObjectType] init];

// some code to change values in the objX and objY

tempObjHolder = objX;
objX = objY;
objY = tempObjHolder;

我交换对象好吗?或者我对这是如何工作感到困惑。我最终会把它们都指向一个物体吗?

我想要做的是让ObjX等于objY然后使ObjY等于ObjX。

由于 -code

2 个答案:

答案 0 :(得分:1)

这是交换任何两个变量的通用方法,是的,你正确地做到了(尽管由于对象必须是指针而{{1不是对象)。

答案 1 :(得分:0)

“等于”和“指向同一个指针”之间存在很大差异。您的示例正确地交换它们,因此指针x和y处的对象具有交换位置,但仍然是不同的。

但是,因为你没有在你的例子中输入tempObjHolder,tempObjHolder和objY都指向同一个对象(最初分配给objX的对象)。

另外,正如thyrgle指出的那样,你在声明中缺少指针:

ObjectType * someObj;