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 

你会得到,如果对象已海誓山盟分配给性能的保留周期。