完成enumerateLinesUsingBlock
后是否有任何通知方式?请检查以下代码。我在while循环中使用chunk数据块调用createFastSearchData
方法,并在内部使用每行并处理它。在条件我正在检查主字符串的长度,我想继续直到它完成总长度。所以我想确保再次在while循环触发之前完成enumerateLinesUsingBlock
。
while(<checking the length of the mainstring>){
[self createFastSearchData:string];
}
- (void)createFastSearchData:(NSString *)newChunk{
[newChunk enumerateLinesUsingBlock:^(NSString * line, BOOL * stop)
{}];
}
加了:
我正在使用块并且难以理解实际流程。请检查以下代码。我想通过在数组fetchCSVData
中传递不同的值来调用filesToBeFetchedWhat
方法。我想确保fetchCSVData
不应该重叠。我怎样才能做到这一点?请帮忙
dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
@autoreleasepool {
for (int i = 0; i < filesToBeFetched.count; i++) {
[applicationDelegate fetchCSVData:[filesToBeFetched objectAtIndex:i]];
}
}
dispatch_async( dispatch_get_main_queue(), ^{
NSLog(@"Fetching is done *********************");
});
});
答案 0 :(得分:0)
回答问题的第一部分:
所有enumerate...UsingBlock
方法都不能异步工作。
关于增加的部分:
假设fetchCSVData
同步工作,那是处理数据的首选方式
dispatch_async( dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
@autoreleasepool {
for (int i = 0; i < filesToBeFetched.count; i++) {
[applicationDelegate fetchCSVData:[filesToBeFetched objectAtIndex:i]];
dispatch_async( dispatch_get_main_queue(), ^{
NSLog(@"Fetching is done *********************");
});
}
}
});