2011-07-24 108 views
1
ElementObject1 *o1= // An XML document's element with some value 

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

我想是要與改變「的地址,該地址以01分的價值」,「價值在其地址O2指向」目標C改變對象的價值

,當我說

o1=o2 this does not work 

我只想簡單地編輯這個XML對象,並用新的元素改變它的一些元素。

我該如何用Objective-c的方式做到這一點?複製複製區域?

+0

你有工作嗎? –

+0

我遵循另一種方式,但謝謝您的回覆 – Spring

回答

4

是的,你必須實現的方法

- (id)copyWithZone: (NSZone *) zone 

,然後說

o1 = [o2 copy]; 

不要忘記釋放O1

[o1 release]; 

並添加協議

< NSCopying>在您的Model @界面中

+2

'copyWithZone:'不是委託方法。協議是'NSCopying',而不是'NSCoding'。 – bbum

+0

是的,對不起。我有點想加快速度,並從我的模型中複製錯誤的協議。此外,我不知道這不是一個委託功能。現在更正。 –

3

你想讓兩個不同的對象具有相同的值嗎?如果是這樣,請嘗試:

o1 = [o2 copy]; 

一定要做到:

[o1 release]; 

當你完成。

如果你想讓兩個指針都指向同一個對象,你應該使用上面的(o1 = o2)。如果你想保留它,請確保保留o1。希望這可以幫助!

1

沒有「改變對象的值」的通用功能。您可以自由更改變量的值,但只能通過消息和屬性的界面來更改對象。如果一個對象沒有提供以某種方式進行變異的方法,那麼你不能以這種方式改變它。有些類有完全替代它們的內容的方法 - NSMutableArray和NSMutableString是立即想到的兩個 - 但Objective-C中的任意對象沒有通用的方法。