objective-c – Mac OS X 10.4上的NSViewController

前端之家收集整理的这篇文章主要介绍了objective-c – Mac OS X 10.4上的NSViewController前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个捆绑代码库 – 而不是一个应用程序 – 在10.4开始开发,并且需要在10.4上运行,但是一直工作到10.8.它手动加载来自nib文件的视图,我最近才意识到存在大量内存泄漏,因为nib利用绑定并绑定文件的所有者,创建引用循环并阻止文件的所有者类解除分配.我认为通过让“文件所有者”加载自己的笔尖会使情况变得更糟.

我使用以下代码加载nib(此代码在基类中,子类重写nibName):

NSString *nibName = [[self class] nibName];
NSNib *nib = [[NSNib alloc] initWithNibNamed:nibName bundle:myBundle];
[nib instantiateNibWithOwner:self topLevelObjects:&topLevelObjects];

由于我必须以10.4为目标,因此无法使用NSViewController.我想我需要实现自己的视图控制器类,但是如何防止引用周期发生,因为NSViewController类承诺呢?如果视图控制器是笔尖的“文件所有者”,那么我不会只是将参考周期从当前类推送到我的视图控制器吗? NSViewController做了什么来防止这种情况?

解决方法

我建议您只使用NSWindowController或自定义子类.您的子类可以具有视图出口和符合KVO的representObject属性.这应该足以支持10.4兼容的替换.

猜你在找的cocoa相关文章