我像往常一样使用.h和.m文件看到了一个类(继承自NSOperation
类),但在实现部分中有-(void) main
方法和NSAutoReleasePool
对象,它看起来很像就像应用程序本身的主要方法一样,为什么在.m文件中应该有一个带有此名称的方法?
答案 0 :(得分:6)
这只是NSOperation
上的一种方法。区别在于:
int main (int argc, const char * argv[])
C 功能是程序启动的地方
- (void)main;
类上的Objective-C 实例方法。
它拥有自己的自动发布池的原因是它通常在一个单独的线程上调用,因此这个新线程需要处理自动释放的对象。
答案 1 :(得分:3)
也许它是NSThread或NSOperation的子类?他们有自己的main()方法。
答案 2 :(得分:1)
引用苹果文档...
NSThread.h main
线程的主要入口点例程。 - (无效)主要讨论
此方法的默认实现采用目标和 选择器用于初始化接收器并调用选择器 指定的目标。如果您是NSThread的子类,则可以覆盖它 方法,并用它来实现你的线程的主体。 如果这样做,则无需调用super。
您永远不应该直接调用此方法。你应该始终开始 你的线程通过调用start方法。可用性
所以这是在每个线程中使用main而且每个线程都有自己的自动释放池..希望有所帮助。