當我運行Xcode 4.5時,默認情況下它與ARC Off stage.But當我們創建Xcode項目 強屬性來代替保留。沒有ARC的Xcode強大的財產?
1)如果強與弱與ARC有關,爲什麼它會進入non-Arc項目?
2)如果強和保留都相同,如果我在更早的 xcode versons中將關鍵字retain更改爲non-Arc項目,它會正常工作嗎?
當我運行Xcode 4.5時,默認情況下它與ARC Off stage.But當我們創建Xcode項目 強屬性來代替保留。沒有ARC的Xcode強大的財產?
1)如果強與弱與ARC有關,爲什麼它會進入non-Arc項目?
2)如果強和保留都相同,如果我在更早的 xcode versons中將關鍵字retain更改爲non-Arc項目,它會正常工作嗎?
是,strong
只是一個不使用ARC時retain
代名詞 - 它包含在非ARC項目在默認情況下,儘量減少ARC和非ARC之間進行轉換時所需的更改,因爲retain
不ARC但工作strong
適用於兩種項目類型。
此外,是的,如果您將其更改爲retain
,那不會破壞您的代碼。
除H2CO3答案:xCode不會警告你這種情況。事實上,如果您從ARC實施的項目中添加此類,請記住在協議實施的情況下實施-(void)dealloc()
方法並釋放委託。
我應該在dealloc中釋放強屬性作爲retain屬性嗎? –
@mirdad是的。更確切地說,您應該將其設置爲零或釋放支持ivar。不要直接發佈屬性。 – 2012-09-24 14:08:18