0

在使用 ARC 的项目中,我有一个UIViewController处理太多问题的问题,所以我想把事情分开。对我来说,一件显而易见的事情是一种格式化和发送电子邮件的方法,并将其拆分为一个单独的对象。

我的控制器目前处理MFMailComposeViewControllerDelegate协议,因为在成功发送电子邮件后,我还有一些额外的工作要做。

我的问题是,如果控制器用作发送电子邮件的单独对象,并且我给它一个指向控制器的指针以用作MFMailComposeViewController mailComposeDelegate,我会创建一个问题 - 特别是保留周期吗?

如果是这样,在这种情况下有什么更好的方法?将指向控制器的属性设置为弱就足够了吗?

4

1 回答 1

1

正如您在问题中所建议的那样,为避免保留循环,您只需将帮助对象的 mailComposeDelegate 属性设为属性。

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

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

如果对象彼此分配给属性,您将获得一个保留周期。

于 2013-05-09T22:01:40.343 回答