Как предотвратить сохранение циклов, вызванных привязкой к себе - PullRequest
3 голосов
/ 04 ноября 2011

У меня есть приложение, в котором мне нужен доступ к данным модели из моих подпредставлений.Я использовал привязки для передачи данных между представлениями;однако привязки к self, кажется, вызывают циклы сохранения (dealloc никогда не вызывается).Когда я должен удалить привязки, если не в методе dealloc?Спасибо.

PS Мне известен метод привязки к контроллеру прокси-объекта , но я бы хотел по возможности избегать его использования.

Вот пример того, чтоЯ делал:

// Top-level Project view
@interface ProjectViewController : NSViewController {
    FoldersView *foldersView;
}
@property (strong) NSObjectController *projectObjectController; // holds Project instance
end

// Displays folders
@interface FoldersView : NSView {
    FolderView *folderView;
}
@property (weak) NSObjectController *projectObjectController; // binded from parent
@property (strong) NSArrayController *foldersArrayController; // binded to project.folders
@end

// Displays selected folder
@interface FolderView : NSView
@property (weak) NSArrayController *foldersArrayController;    // binded from parent
@property (strong) NSObjectController *folderObjectController; // binded to folders.selection
@end

1 Ответ

1 голос
/ 06 ноября 2011

Привязки являются предпочтительным способом удаления детали C (шаблонный код) из троицы MVC.Таким образом, ваш подход к решению этой проблемы правильный.

...