美文网首页面试好文
NSOperation中start与main的区别

NSOperation中start与main的区别

作者: lltree | 来源:发表于2018-03-01 15:11 被阅读372次
- (void)start;
- (void)main;

start和main.
按照官方文档所说,如果是非并发就使用main,并发就使用start。
那现在并发和非并发已经没有区别了,start和main的区别在哪里呢?
main方法的话,如果main方法执行完毕,那么整个operation就会从队列中被移除。如果你是一个自定义的operation并且它是某些类的代理,这些类恰好有异步方法,这是就会找不到代理导致程序出错了。
然而start方法就算执行完毕,它的finish属性也不会变,因此你可以控制这个operation的生命周期了。
然后在任务完成之后手动cancel掉这个operation即可。

相关文章

  • NSOperation中start与main的区别

    start和main.按照官方文档所说,如果是非并发就使用main,并发就使用start。那现在并发和非并发已经没...

  • NSOperation和NSOperationQueue

    NSOperation 1.继承NSOperation类 2.重写“main”方法 3.在“main”方法中创建一...

  • NSOperation

    一、start gnustep/libs-base源码搜索NSOperation 来到NSOperation.h ...

  • Objc多线程-NSOperation,NSOperationQ

    NSOperation:抽象类。 - (void)start;: 开启任务操作。NSOperation对象默认按同...

  • CSS选择器(二)

    问题: css选择器#main > .images与#main .images与#main, .images的区别...

  • iOS 一篇文章搞定GCD

    想了解NSOperation与GCD的区别可参考iOS多线程之NSOperation及简单练习 文章内容较长,介绍...

  • CSS3--flex布局

    概念 main axis:水平的主轴,开始位置(与边框的交叉点)叫做main start,结束位置叫做main e...

  • Thread的.start()与.run()的区别

    1、Thread的.start()与.run()的区别 start() start()方法启动线程,真正实现了多线...

  • 线程

    创建线程的方式 1. Thread start()与run()区别start是启动线程,start是用synchr...

  • NSOperation与GCD区别

    Mac OS X 10.6及iOS4.0之后导入了可以使全体线程更高效运行,并且使并行处理应用更易开发的架构,GC...

网友评论

    本文标题:NSOperation中start与main的区别

    本文链接:https://www.haomeiwen.com/subject/erggxftx.html