Queue for iOSiOS 后台作业组件

联合创作 · 2023-09-27 21:06

Queue 是一个支持持久化后台作业队列的 iOS 开发包。虽然NSOperationNSOperationQueue工作以及对一些重复的问题,并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;
}

 

浏览 8
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报