类的实现部分中的Void主方法



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

这只是NSOperation上的一个方法。不同之处在于:

int main (int argc, const char * argv[])

是C 函数,它是程序开始的地方

- (void)main;

是在上的objective-C 实例方法

它有自己的自动释放池的原因是它通常在一个单独的线程上被调用,因此这个新线程需要处理自动释放对象。

也许它是一个NSThread或NSOperation子类?它们有自己的main()方法

引用apple docs…

NSThread.h主要

线程的主入口点例程。- (void)main Discussion

此方法的默认实现接受目标和选择器,用于初始化接收器并在上调用选择器指定的目标器。如果你子类化NSThread,你可以重写这个方法并使用它来实现线程的主体。如果这样做,则不需要调用super。

你不应该直接调用这个方法。你应该从通过调用start方法来创建线程。可用性

就是在每个线程中使用main,每个线程都有一个自动释放池。

相关内容

最新更新