NSString *p = [[storagePath retain] autorelease];
1)ARC禁止顯式發送'autorelease'消息。字符串中的多個錯誤
2)ARC禁止顯式發送'retain'消息。
3)autorelease不可用,不適用於自動引用計數模式。
4)保留不可用,不適用於自動引用計數模式。
該字符串有多個錯誤。提出問題和整改。
NSString *p = [[storagePath retain] autorelease];
1)ARC禁止顯式發送'autorelease'消息。字符串中的多個錯誤
2)ARC禁止顯式發送'retain'消息。
3)autorelease不可用,不適用於自動引用計數模式。
4)保留不可用,不適用於自動引用計數模式。
該字符串有多個錯誤。提出問題和整改。
ARC指爲(自動引用計數),其負責對 存儲器釋放安全。
波紋管線是指:
//NSString *p = [[storagePath retain] autorelease];
「[storagePath挽留]」通過添加1
所以意味着可變storagePath增量它的參考,這是需要釋放時,它便不再使用。 autorelease將自動執行此任務。
但當蘋果介紹ARC常做自動釋放一切(除了:複雜的迴路)
你並不需要使用自動釋放現在保留的NSString的財產類不再存在。所以,不需要做保留的字符串。只需簡單地編寫以下
NSString *p = storagePath;
因爲ARC爲您安全地釋放內存而努力 – Jamil
(ARC是「自動引用計數」,一個新的功能來underwith的iOS 5及以上)。因此您不需要手動保留或釋放。
// directly you want to access
NSString *p = storagePath;
你可以刪除你的保留通話一起或者通過執行以下操作關閉ARC:
單擊在左側的導航視圖的項目的名稱,進入目標 - >構建階段並將
-fno-objc-arc
添加到任何相關文件的「編譯器標誌」。
如果這是來自教程,它已過時。 ObjC現在使用ARC來管理內存,渲染'retain','autorelease'和'release'已過時。有關更多詳細信息,請參閱發佈的答案或[文檔(在Swift 2中)](https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/AutomaticReferenceCounting.html)。 – Arc676