2013-12-12 42 views
-1

我相信ARC會照顧所有內存管理問題,是否有使用保留的原因。現在有沒有理由使用分配?現在有ARC是否需要使用保留

我試圖通過一些文件看,但如果我們不需要這個東西了,那應該我們分配的屬性,當我們創建它們無法找到任何

?我們應該讓一切變得強大嗎

+0

是您的問題有關保留/ *中分配屬性*? –

+0

不,基於我所知道的..我認爲ARC可能會取代所有這些東西..我希望如此..我會等待,看看這裏的人們如何迴應 – rserefgx

+2

如果你使用ARC,我認爲編譯器拒絕讓你使用保留。 – mah

回答

2

如果您使用ARC,您應該使您的屬性爲weakstrong。如果只要某個其他對象指向該屬性,則應該使用weak,如果只要您(自我)指向該屬性,就應該使用strong。例如,當您的對象有一個指向故事板或xib中的UIView的指針(由控件單擊和拖動到您的界面創建)時,它將是一個弱指針,因爲您期望UIView僅存在只要故事板或xib允許它存在。更清楚的是,故事板或xib擁有該對象。

在使用ARC retain相同strong

+1

這真的很抽象,你能舉一個真實的例子來進一步解釋嗎? – rserefgx

+1

'assign'用於原始C數據類型。 「weak」/「retain」/「strong」是針對對象的。 – nhgrif

+0

另外還有_strong限定符在某些情況下使用它 –

0

好,因爲它沒有讓我給予好評我上面的答案。我會以同樣的方式迴應。由於您現在必須在設置屬性列表時使用弧,因此弱標籤和強標籤將取代保留特徵。我通常會在單個視圖應用程序中將所有內容都設置爲強大,然後當我使用多視圖或我使用的表格式應用程序時使用弱視。

+0

確定這很有趣..所以你爲什麼這麼做?我的意思是,當你去多視圖或桌面時,爲什麼你必須轉換爲弱? – rserefgx

+0

,因爲weak用於更臨時的對象。所以由於表格視圖或多視圖,我們可以說由於用戶使用而會有更多的臨時指針。 – clarkatron

0

是的,在許多情況下,您想要覆蓋默認的ARC行爲。

 
Eg: 

@property(nonatomic,retain)NSString *response; 

-(void)parseHTTRResponse { 

//responseString is an autoreleased object but assignment will increase retain count by 1 
self.response =[self stringFromData:response.data]; 

// equivalent to first statement 
__strong NSString *responseString = [self stringFromData:response.data]; 

} 

現在問題是爲什麼有人會這樣做?

要提高局部變量自動釋放壽命這需要很長一段時間(一般NSURLConnection的對象)

相關問題