我正在学习iOS的并发编程.到目前为止,我已经读过NSOperation/NSOperationQueue和GCD.使用NSOperationQueueover 的原因是什么GCD,反之亦然?
听起来像是两者,GCD并从用户那里NSOperationQueue抽象出明确的创造NSThreads.然而这两种方法之间的关系对我来说并不清楚,所以任何反馈都要赞赏!
concurrency nsoperation nsoperationqueue grand-central-dispatch ios
感谢Stanford的CS193p课程(在iTunes U上)以及Big Nerd Ranch的iOS编程书,我学习了iOS编程.在这两个,他们建议使用dispatch_async(),dispatch_get_main_queue()等来处理线程和并发操作.但是,在WWDC 2012关于构建并发UI的会议上,发言人建议使用NSOperationQueue.
dispatch_*()和之间NSOperationQueue有什么区别,有什么理由(技术,性能,风格或其他方面)我应该使用另一个吗?是否NSOperationQueue只是一个Objective-C的包装器dispatch_async,或者是有更多的什么原因呢?
首先,我知道只支持voip,音频和位置应用程序在后台运行,并且它们将在播放音频或使用位置服务等时运行.
我想知道的是,如果有办法让我的应用程序在后台运行完全正常运行,那么对电池寿命的影响无关紧要.
这样,我的应用程序的用户可以从设置中进行选择,以便随时随地保持应用程序,并且只需要他想要的时间.例如,如果他正在等待需要应用程序运行的内容,则在收到消息后,他可以关闭保持活动功能.
我不知道这是否可行,但我读过一些帖子,但不幸的是他们没有说如何=(
更新:在本教程中,我发现Acrobits在Apple Store上有两个应用程序"可以强制应用程序保持活动并在后台唤醒".那么有办法做到这一点吗?
ios ×2
iphone ×2
objective-c ×2
cocoa-touch ×1
concurrency ×1
ios4 ×1
keep-alive ×1
nsoperation ×1