void类的实现部分中的main方法

时间:2011-12-03 11:45:13

标签: iphone objective-c ios

我像往常一样使用.h和.m文件看到了一个类(继承自NSOperation类),但在实现部分中有-(void) main方法和NSAutoReleasePool对象,它看起来很像就像应用程序本身的主要方法一样,为什么在.m文件中应该有一个带有此名称的方法?

3 个答案:

答案 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而且每个线程都有自己的自动释放池..希望有所帮助。