0

在使用ARC的項目中,我有一個處理太多問題的UIViewController,所以我正在尋求分解事情。對我來說,一件顯而易見的事情是一種格式化併發送電子郵件並將其分割成單獨對象的方法。我在UIViewController和自定義對象之間創建一個保留循環嗎?

我的控制器當前處理MFMailComposeViewControllerDelegate協議,因爲在成功發送郵件後,我還有一些額外的工作要做。

我的問題是,如果控制器將作爲單獨的對象收發郵件,我給它一個指針回控制器用作MFMailComposeViewControllermailComposeDelegate,我要去創造一個問題 - 特別是保留週期?

如果是這樣,在這種情況下更好的方法是什麼?將屬性指回控制器是否足夠弱?

回答

1

正如你在你的問題中所建議的,爲了避免保留週期,你只需要讓你的助手對象的mailComposeDelegate屬性爲屬性。

@interface MyViewController : UIViewConroller 
@property(nonatomic, strong) MyHelperEmailObjectClass *emailHelper; 
@end 

@interface MyHelperEmailObjectClass : NSObject  
@property(nonatomic, weak) id<MFMailComposeViewControllerDelegate> mailComposeDelegate; 
@end 

你會得到,如果對象已海誓山盟分配給性能的保留週期。

相關問題