簡體   English   中英

客觀-C。 非弧的弧庫

[英]objective-C. Arc library in non-arc

我將PESGraph弧庫添加到沒有弧的項目中。

我已經找到了答案,它是可能的,它確實有效。 但是如何在非弧項目中處理來自弧庫的對象的內存。 我的意思是至少分配,保留,釋放。

例如,如果聲明為retain屬性,我可以在aralloc方法中為對象寫入arc嗎?

如果在禁用ARC的情況下編譯文件,則可以在該文件中調用release (和retain and autorelease ),並且您負責在適當的位置進行這些調用。

ARC的想法是,當啟用ARC時,編譯器會為您插入這些調用。 如果您為某些文件禁用了ARC,則必須在這些文件中自行插入呼叫。

如果禁用ARC,則需要retainreleaseautorelease對象時,Cocoa具有非常強的約定。 閱讀Cocoa核心能力:內存管理入門。 如果您需要更多詳細信息,請查看高級內存管理編程指南 它並不是非常先進。

啟用ARC時,編譯器遵循相同的約定。 這就是為什么您可以在同一個可執行文件中鏈接啟用ARC的文件和ARC禁用的文件。

Cocoa中的內存管理是完全本地的 - 需要在函數中執行的內存管理操作只能通過查看該函數來確定,而無需關心其他代碼。 每個功能都可以在內存管理方面獨立考慮,只要它們都遵循規則。 ARC只是自動實現規則(您將在MRC中遵循的規則)。 代碼的不同部分可以獨立使用ARC或MRC,而不會相互影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM