2011-01-23 56 views
0

我有一個基於文檔的Cocoa應用程序。在運行期間,我通過調用[NSBundle loadNibNamed:@"inspectorNIB" owner:self](其中selfNSDocument)從該包加載另一個筆尖。奇怪的loadNib命名行爲

奇怪的是,當加載包成功時,它再次調用NSDocumentawakeFromNib方法,導致不必要的第二次初始化。這是預期的行爲?我怎樣才能壓制它?

回答

3

是的,如果對象在筆尖中被引用,則爲每個加載的筆尖調用-awakeFromNib。如果你想避免做兩次設置,你可以設置一個BOOL實例變量並進行檢查:

if (!alreadyDidNibLoadStuff) { 
    // do nib load stuff 
    alreadyDidNibLoadStuff = YES; 
}