objective-c – Mac OS X 10.4上的NSViewController

objective-c – Mac OS X 10.4上的NSViewController,第1张

概述我正在开发一个捆绑代码库 – 而不是一个应用程序 – 在10.4开始开发,并且需要在10.4上运行,但是一直工作到10.8.它手动加载来自nib文件的视图,我最近才意识到存在大量内存泄漏,因为nib利用绑定并绑定文件的所有者,创建引用循环并阻止文件的所有者类解除分配.我认为通过让“文件所有者”加载自己的笔尖会使情况变得更糟. 我使用以下代码加载nib(此代码在基类中,子类重写nibName): N 我正在开发一个捆绑代码库 – 而不是一个应用程序 – 在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兼容的替换. 总结

以上是内存溢出为你收集整理的objective-c – Mac OS X 10.4上的NSViewController全部内容,希望文章能够帮你解决objective-c – Mac OS X 10.4上的NSViewController所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1001058.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存