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 

Вы получили бы сохранить цикл, если объекты были Афоризм назначены сильных свойств.

Смежные вопросы