Objective c 使用objc_disposeClassPair()
运行时API中有一个未记录的函数,它(基于一些玩具程序)执行其名称所示的功能:Objective c 使用objc_disposeClassPair(),objective-c,cocoa,objective-c-runtime,Objective C,Cocoa,Objective C Runtime,运行时API中有一个未记录的函数,它(基于一些玩具程序)执行其名称所示的功能: OBJC_EXPORT void objc_disposeClassPair(Class cls) AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER; 然而,详细的信息是相当薄的地面。因此,这与其说是单个问题,不如说是一组相关问题: 有没有关于它的好文章/博客帖子,或者有没有人有过使用它的经验(一个快速的谷歌建议PyObjC开发人员至少在某一点上考虑过使用它) 被处置
OBJC_EXPORT void objc_disposeClassPair(Class cls)
AVAILABLE_MAC_OS_X_VERSION_10_5_AND_LATER;
然而,详细的信息是相当薄的地面。因此,这与其说是单个问题,不如说是一组相关问题:
- 有没有关于它的好文章/博客帖子,或者有没有人有过使用它的经验(一个快速的谷歌建议PyObjC开发人员至少在某一点上考虑过使用它)
- 被处置的类是否完全被解除分配(频繁创建和删除类的应用程序是否会泄漏内存?)
- 除了关于未记录API的常见问题外,还有什么值得记住的问题吗
- 苹果在哪里使用它?卸载包裹?KVO
是的,它们将被完全解除分配。如果查看中的
cycle
函数,您会发现它同时分配和取消分配多个类。下面的main
实现将该函数运行100次,并检查是否存在泄漏,这表明他们不会发布严重泄漏的实现。如果您想了解更多信息,应该查看中的代码。你可能会在那里的某个地方找到苹果公司两个函数的实际代码,以及它的使用位置。你想实现什么,为什么你认为objc\u disposeClassPair()
可以帮助你实现它?释放类正是我想要实现的,不是完成其他事情的手段。下一个最好的解决方案是“释放”类的黑客方式,如果可能的话,我希望避免这种方式。