Ios7 ios:NSO操作和nsrunlop终止

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[而不是主队列]。我需要 运行循环,以便

对于在start方法中调用nsrunlop的NSOperation子类,如下所示:

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];”