3

サブビューからモデル データにアクセスする必要があるアプリケーションがあります。ビュー間でデータを渡すためにバインディングを使用してきました。ただし、バインディングが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
4

1 に答える 1

1

バインディングは、MVC の三位一体から C 部分 (ボイラープレート コード) を削除するための推奨される方法です。したがって、この問題を処理するためのアプローチは正しいです。

于 2011-11-06T09:10:24.360 に答える