小编use*_*963的帖子

当Grand Central Dispatch作业队列完成时返回bool

我想在dispatch_group_notify完成后得到一个布尔值。不幸的是,以下代码是错误的,我不知道如何执行...编译器告诉我“将'BOOL'(^)(void)'传递给类型'dispatch_block_t'(aka' void(^)(void ^))“有什么想法吗?

-(BOOL)saveToDB:(NSArray*)data{

// execute async the saveJSONDictionary
__block BOOL toReturn;
dispatch_group_t group = dispatch_group_create();
dispatch_queue_t queue = dispatch_queue_create("saveJsonDictionary", 0);
dispatch_group_async(group, queue, ^{
    for (int i = 0; i < [data count]; ++i) {
        NSDictionary* item = (NSDictionary*)[data objectAtIndex:i];
        [self saveJsonDictionary:item];
    }
    NSManagedObjectContext *moc = [[DatabaseManager sharedManager]managedObjectContext];
    toReturn = [moc save:nil];
});

dispatch_group_notify(group, queue, ^BOOL{
    return toReturn;
});
Run Code Online (Sandbox Code Playgroud)

}

macos cocoa objective-c grand-central-dispatch

1
推荐指数
1
解决办法
1437
查看次数