2011-09-21 41 views
0

我已經得到了有關的OBJ-C編碼一個基本的問題,說我有由變量表示的兩個類:如何傳遞的對象有什麼相關的開銷?

ClassA *classA; 
ClassB *classB; 

如果我想從ClassA訪問ClassB,我可以在classB傳遞對象作爲參數寫入任何ClassA方法並相應地使用它。

什麼是本次交易的開銷,並且要做大分配的內存對象有針對較小分配的對象更高的開銷?或者事務只是一個簡單的4字節指針? (如何通過對象?)

另一個問題,如果我想在使用classB的傳遞參數對象初始化後保留ClassB *classB。這會比一貫將參數傳遞給每個單獨的方法更便宜嗎?

感謝,
奧利弗。

+0

對象由值來傳遞,作爲一個指針。我很好奇,你有性能問題,還是你提前優化? –

+0

在開始編碼之前,要理解關於性能的基本問題並非不合理。這不是一個惹人注目的「事先優化」,只是好的編程習慣。 –

回答

0

如果你路過的指針,有沒有真正的任何更多的成本來傳遞一個有在傳遞一個int。用於存儲對象的值,同樣的事情 - 沒有真正的區別(忽略任何保留,你可以這樣做),比存在存儲的int

當然,當你的指針存儲到另一個物體的物體通常應retain它,但這是一個整體'諾特爾討論。

相關問題