Objective C更改对象的值

时间:2011-07-24 13:59:11

标签: iphone objective-c c ios4

ElementObject1 *o1=   // An XML document's element with some value

ElementObject2 *o2=   //A new element with a new value to be replaced

我希望“o1指向的地址的值”改为“o2指向的地址的值”

当我说

o1=o2 this does not work 

我只想简单地编辑这个XML对象并用新元素更改它的一些元素。

如何使用Objective-c方式执行此操作?复制复制区?

3 个答案:

答案 0 :(得分:4)

是的,您必须实施方法

- (id)copyWithZone: (NSZone *) zone

然后说

o1 = [o2 copy];

不要忘记发布o1

[o1 release]; 

并添加协议

< NSCopying>在你的Model @interface

答案 1 :(得分:3)

您是否尝试制作具有相同值的两个不同对象?如果是这样,请尝试:

o1 = [o2 copy];

一定要这样做:

[o1 release];

当你完成。

如果你试图让两个指针都指向同一个对象,你上面的那些(o1 = o2)应该有效。如果要保留,请务必保留o1。希望这有帮助!

答案 2 :(得分:1)

没有“改变对象价值”的一般设施。您可以自由更改变量的值,但只能通过消息和属性的接口更改对象。如果一个对象没有提供一种以某种方式变异的方法,那么就不能用那种方式改变它。有些类具有完全替换其内容的方法 - NSMutableArray和NSMutableString是我们想到的两个 - 但是在Objective-C中没有使用任意对象的一般方法。