好的,如果我有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
答案 0 :(得分:1)
这是交换任何两个变量的通用方法,是的,你正确地做到了(尽管由于对象必须是指针而{{1不是对象)。
答案 1 :(得分:0)
“等于”和“指向同一个指针”之间存在很大差异。您的示例正确地交换它们,因此指针x和y处的对象具有交换位置,但仍然是不同的。
但是,因为你没有在你的例子中输入tempObjHolder,tempObjHolder和objY都指向同一个对象(最初分配给objX的对象)。
另外,正如thyrgle指出的那样,你在声明中缺少指针:
ObjectType * someObj;