Ios7 ios:NSO操作和nsrunlop终止
对于在start方法中调用nsrunlop的NSOperation子类,如下所示:Ios7 ios:NSO操作和nsrunlop终止,ios7,nsoperation,nsrunloop,Ios7,Nsoperation,Nsrunloop,对于在start方法中调用nsrunlop的NSOperation子类,如下所示: NSRunLoop * runloop = [NSRunLoop currentRunLoop]; while (!stopRunloop && [runloop runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]); nsoperation被添加到NSOperationQueue[而不是主队列]。我需要 运行循环,以便
NSRunLoop * runloop = [NSRunLoop currentRunLoop];
while (!stopRunloop && [runloop runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]);
nsoperation被添加到NSOperationQueue[而不是主队列]。我需要
运行循环,以便从库中获取回调,并执行一些后台操作
任务。我的问题如下:
1.准备NSO操作的线程是否复制其所有数据
运行NSOperation的线程[当开始执行方法时]?
2.为什么上面的while循环无法终止,尽管stopRunloop正在从库回调中更新值YES?
3.start方法是否也需要@autoreleasepool用法
谢谢创建线程时,它没有与之关联的运行循环-这由您来管理。runloop必须至少有一个与之关联的输入源
如果操作(如网络)中有依赖于运行循环的代码,则当运行循环没有连接输入源时,该操作可以快速完成或退出。管理此操作的一种方法是在操作中附加输入源(如NSPort),并在操作“完成”时将其删除。最清洁的方法是使用KVO将源管理与NSCOORATION状态集成(即,在准备就绪时或在IsRead时将端口附加到“是”,在被取消或ISEORT被设置为“是”时将其删除)。
CFRunLoopStop(CFRunLoopGetCurrent());
请参阅。中的“退出运行循环”,但是由于后台任务是由只公开回调的库执行的,因此如何关联输入源?如果可以这样做。。。“NSRunLoop*runloop=[NSRunLoop currentlunloop];”,您可以关联一个端口:“[runloop addPort:somePort forMode:someRunMode];”