什麼情況下用retain和copy

2021-08-27 10:06:08 字數 576 閱讀 7428

那上面的是什麼意思呢?

copy其實是建立了乙個相同的物件,而retain不是:

比如乙個nsarray物件,位址為11111,內容為xx

copy到另外乙個nsarray之 後,位址為22222,內容相同,新的物件retain為1, 舊有物件沒有變化

retain到另外乙個nsarray之 後,位址相同(建立乙個指標,指標拷貝),內容當然相同,這個物件的retain值+1

也就是說,retain是指標拷貝,copy是內容拷貝。

什麼情況下用assign,什麼情況下用retain,什麼情況下用copy?

assign:凡是不是擁有的關係,應該使用assign,而不是retain或copy。

retain或copy:當類擁有mutable子類時,你應該使用copy,而不是retain。

例如:nsaarray,nsset,nsdictionary,nsdata的,nscharacterset,nsindexset,nsstring。

什麼情況下用遞迴?

遞迴的特點,可以看出遞迴可以大大縮短程式的 有意識的使用遞迴,可以用較短的 解決一些複雜的問題。甚至有些問題非得使用遞迴解決不可。那麼什麼時候我們該使用遞迴呢?遞迴演算法的 基本思想 是 把規模大的 較難解決的問題變成規模較小的 易解決的同一問題。規模較小的問題又變成規模更小的問題,並且小到一定程度...

layoutSubviews在什麼情況下呼叫

1.在以下情況都會呼叫 注意 當view的size的值為0的時候,addsubview也不會呼叫layoutsubviews。當要給這個view新增子控制項的時候不管他的size有沒有值都會呼叫 2.先來看一下uiview的layoutsubviews在什麼情況下會呼叫 subview view s...

socket什麼情況下可讀

一 下列四個條件中的任何乙個滿足時,socket準備好讀 1.socket接收緩衝區中已經接收的資料的位元組數大於等於socket接收緩衝區低潮限度的當前值 對這樣的socket的讀操作不會阻塞,並返回乙個大於0的值 即 準備好讀入的資料的位元組數 我們可以用socket選項so rcvlowat來...