Queue for iOSiOS 后臺(tái)作業(yè)組件
Queue 是一個(gè)支持持久化后臺(tái)作業(yè)隊(duì)列的 iOS 開發(fā)包。雖然NSOperation和NSOperationQueue工作以及對(duì)一些重復(fù)的問題,并NSInvocation為他人的 iOS 并沒有真正包括易管理的任意后臺(tái)任務(wù)大集合的一組工具。EDQueue提供了一個(gè)高級(jí)接口,用于使用 GCD 和 SQLLite3 實(shí)現(xiàn)線程化作業(yè)隊(duì)列。用戶需要做的就是處理提供的委托方法中的工作,而 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;
}
評(píng)論
圖片
表情
