Queue for iOSiOS 后台作业组件
Queue 是一个支持持久化后台作业队列的 iOS 开发包。虽然NSOperation和NSOperationQueue工作以及对一些重复的问题,并NSInvocation为他人的 iOS 并没有真正包括易管理的任意后台任务大集合的一组工具。EDQueue提供了一个高级接口,用于使用 GCD 和 SQLLite3 实现线程化作业队列。用户需要做的就是处理提供的委托方法中的工作,而 EDQueue 处理其余的工作。
示例代码:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
[[EDQueue sharedInstance] setDelegate:self];
[[EDQueue sharedInstance] start];
}
- (void)applicationWillResignActive:(UIApplication *)application
{
[[EDQueue sharedInstance] stop];
}
- (EDQueueResult)queue:(EDQueue *)queue processJob:(NSDictionary *)job
{
sleep(1); // This won't block the main thread. Yay!
// Wrap your job processing in a try-catch. Always use protection!
@try {
if ([[job objectForKey:@"task"] isEqualToString:@"success"]) {
return EDQueueResultSuccess;
} else if ([[job objectForKey:@"task"] isEqualToString:@"fail"]) {
return EDQueueResultFail;
}
}
@catch (NSException *exception) {
return EDQueueResultCritical;
}
return EDQueueResultCritical;
}
评论
