繁体   English   中英

如何防止因绑定自身而导致的保留周期

[英]How to prevent retain cycles caused by binding to self

我有一个应用程序,我需要从我的子视图访问模型数据。 我一直在使用绑定来跨视图传递数据; 然而,对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

绑定是从MVC三位一体中删除C部分(样板代码)的首选方法。 所以你处理这个问题的方法是正确的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM