mydocument (NSPersistentdocument) -> mydocument.xib (windows xib) | |-> vIEw (the self.vIEw) --> ... "other vIEw" | |-> some NSArrayController | |-> myResourceVIEwController --> myResourceVIEwController.xib | |-> vIEw (the self.vIEw) | |-> myTreeController (a nstreecontroller subclass)
基本上,myResourceVIEwController是一个vIEwController的一个实例,它管理resourceVIEw并管理他们的数据.
在awakeFromNib方法mydocument我有以下代码
- (voID)windowControllerDIDLoadNib:(NSWindowController *)aController{ ... [leftbar addSubvIEw:resourceVIEwController.vIEw]; //i add resourceVIEwController's vIEw resourceVIEwController.vIEw.frame = leftbar.bounds; ...}
在myResourceVIEwController awakeFromNib方法我有:
-(voID)awakeFromNib;{ NSLog(@"%@",[self description]); [removebutton bind:@"enabled" toObject:resourceTreeController withKeyPath:@"selection" options:[NSDictionary dictionaryWithObject:NSIsNotNiltransformername forKey:NSValuetransformernameBindingOption]]; NSArray *draggedTypes = [NSArray arrayWithObjects:ResourceURIPasteBoardType,nil]; [resourceOutlineVIEw registerForDraggedTypes:draggedTypes];}
NSLog表示,同一个myResourceVIEwController实例的awakeFromNib被称为4次,我不明白为什么.我唯一的ResourceVIEwController是在mydocument xib中创建的.我不使用NSNib加载方法到处.
解决方法 我找到了解决方案.每次NSOutlineVIEw创建NStableCellVIEw时都会调用awakeFromNib. 总结以上是内存溢出为你收集整理的objective-c – awakeFromNib方法多次调用全部内容,希望文章能够帮你解决objective-c – awakeFromNib方法多次调用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)