关于NSAutoReleasePool https://developer.apple.com/library/ios/documentation/cocoa/reference/foundation/Classes/NSAutoreleasePool_Class/Reference/Reference.html的Apple API参考 它指出了这一点 “Application Kit在事件循环的每个循环开始时在主线程上创建一个自动释放池”。
这让我很困惑。我有三个问题。
1)“应用套件”是什么意思? UIKit的?如果“应用程序工具包”意味着UIKit,那么,我创建了一个不使用UIkit的应用程序。它会在事件循环的每个循环开始时在主线程上创建一个autoreleasePool。
2)“在主线程上”意味着在其他线程(不是mainThread)会破坏这个规则吗?
3)“事件循环”是指runloop吗?
# #添加: 我写了一个演示来测试它。当我创建一个线程时,会自动通过runloop创建一个autoreleasePool吗?
然后,在Application MainThread中,创建一个taskThread。
结果:
所以,问题2)“在主线程上”意味着在其他线程(不是mainThread)会打破这个规则吗? 在这个演示中,它不是。每个runloop的第二个线程自动创建一个autoreleasePool。因为调用了autoreleaseObject的dealloc方法。
我的演示有什么问题吗?这让我很困惑。
答案 0 :(得分:1)