如何解决NSCollectionView 内存泄漏
我有一个 NSCollectionView
指定为我的数据源和我的委托。
我有两个问题:
-
而不是使用
registerClass
方法,而是尝试使用 3 行注释代码和(非 nil)protoNib 方法注册NSCollectionView
导致 {{1} } 永远为零。 -
使用类注册表选项,一切正常。但是,如果我删除
theItem
和willdisplayItem
存根,系统在第一次调用didEnddisplayingItem
时会消耗大量内存(对这两个存根进行了数千次内部调用)并最终崩溃。 Instruments 显示 数千 4kitemForRepresentedobjectAtIndexPath
是由@autoreleasepool content items
创建的。
知道为什么会发生这种情况吗?
AppKit
解决方法
Appkit 类并非设计为它们自己的委托。 NSCollectionView
实现了几个 NSCollectionViewDelegate
方法并调用委托。我不知道为什么它是这样实现的,感觉不对,但事实就是如此。如果集合视图是它自己的委托,并且子类中没有实现委托方法,则调用会导致无限循环。解决方案:不要将 delegate
设置为 self
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。