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方式执行此操作?复制复制区?
答案 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中没有使用任意对象的一般方法。