簡體   English   中英

將非ARC文件子類化為Xcode 4中的ARC項目

[英]Subclass non-ARC file into ARC project in Xcode 4

我在ARC項目中使用了一些非ARC代碼,即Three20。 我已經添加了所有適當的編譯器標志,並且一切正常。 但是,我需要子類化某些Three20類,並且我不確定是否應該將編譯器標志添加到非ARC的新文件中,或者編譯器是否會發現它並添加適當的發布調用。

簡要說明一下:-XCode 4中的ARC項目-包括非ARC代碼(Three20)-需要將非ARC文件中定義的內容子類化-我是否需要添加發布調用? -是否需要在子類中為非ARC添加編譯器標志?

邁克爾

ARC是一種編譯時技術,可根據內存中給定的插槽是否在當前方法/函數調用之后繼續保留,來確定保留/釋放語義。 因此,可以使用或不使用ARC來安全地混合子類。 我一直都在做。 我也按類別進行。 與垃圾回收不同,ARC在每種方法/函數中只專注於存儲空間。 順便說一句,大多數iOS框架似乎尚未使用ARC。 因此,您在框架類中創建的任何子類都具有此“問題”,而這並不是問題。

要回答您的特定問題:

簡要說明一下:-XCode 4中的ARC項目-包括非ARC代碼(Three20)-需要將非ARC文件中定義的內容子類化-我是否需要添加發布調用? -是否需要在子類中為非ARC添加編譯器標志?

非ARC超類的子類可以是ARC,也可以不是。 由於應用程序的默認設置是ARC,因此您無需對子類進行任何操作。

安德魯

是的,您需要添加非ARC標志( -fno-objc-arc )並retain / release調用。

如果您的子類確實使用ARC,請不要添加它,但是我建議您不要這樣做,因為它只會帶來麻煩。

暫無
暫無

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

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