gpt4 book ai didi

cocoa - 如何防止绑定(bind)到 self 导致的循环引用

转载 作者:行者123 更新时间:2023-12-03 16:21:37 25 4
gpt4 key购买 nike

我有一个应用程序,我需要从 subview 访问模型数据。我一直在使用绑定(bind)来跨 View 传递数据;但是,与 self 的绑定(bind)似乎会导致保留循环(dealloc 永远不会被调用)。如果不在 dealloc 方法中,我应该什么时候删除绑定(bind)?谢谢。

附注我知道binding to a proxy object controller的方法,但我想尽可能避免使用它。

这是我一直在做的一个例子:

// 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

最佳答案

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

关于cocoa - 如何防止绑定(bind)到 self 导致的循环引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8014760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com