我已經開始使用Xcode 4.2開發我的第一個iOS應用程序,並且使用「實用程序應用程序」模板(帶有FlipsideViewController的模板)來定位iOS 5.0。如何在使用ARC並定位iOS 4.0時替換弱引用?
,我讀了,因爲ARC是一個編譯時的功能,它應該是與iOS 4兼容的很好,所以我試圖將我的應用程序目標至4.3,並嘗試編譯它。當我這樣做,我得到這個錯誤:
FlipsideViewController.m:錯誤:自動引用計數問題:當前的部署目標不支持自動__weak引用
它引用這條線:
@synthesize delegate = _delegate;
該變量聲明爲:
@property (weak, nonatomic) IBOutlet id <FlipsideViewControllerDelegate> delegate;
我明白,「弱引用s「在iOS 4中不被支持,但我不明白爲什麼我想用一個弱引用開始,也不知道如何重寫某些東西以避免使用它,同時仍然利用ARC (畢竟,它應該與iOS 4和5一起工作嗎?)
感謝您的意見。你說「針對較舊的操作系統......」。這是否意味着我應該只在5.0以前版本的應用中使用unsafe_unretained?或者我可以在我的代碼中使用unsafe_unretained,並構建它以同時針對4.x和5.x? –
@Mason - iOS 4.x和5.0都支持'unsafe_unretained',所以它可以提供向後兼容性。如果你正在做一個5.0版的構建,你可能會切換到「弱」來利用它提供的額外安全性。 –
我試過unsafe_unretained,它無論如何工作。但是,我得到很多警告,如'** __NSAutoreleaseNoPool():__NSArrayM類的對象0x564bd90自動釋放,沒有池 - 只是泄漏「*」,這是正常的? – fifth