我看到一个类(继承自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,每个线程都有一个自动释放池。