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; }
评论