2011-11-04 45 views
3

我有一個應用程序需要從我的子視圖訪問模型數據。我一直在使用綁定來跨視圖傳遞數據;然而,綁定到self似乎導致保留週期(dealloc永遠不會被調用)。什麼時候應該刪除綁定,如果不在dealloc方法中?謝謝。如何防止綁定到自己導致的保留週期

P.S.我知道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 
+0

這看起來不錯。它工作嗎? – jrturton

+0

是的,它確實工作正常。但我認爲綁定正在導致一個保留週期,以防止視圖被釋放。如果不在dealloc中,我們應該何時刪除綁定?謝謝。 – panupan

+0

如果你有這個問題,我會建議編輯這個問題 - 這不是你最初的問題。 – jrturton

回答

1

的綁定是從MVC三位一體除去C部分,(樣板代碼)的首選方式。所以你處理這個問題的方法是正確的。