我有一个从磁盘读取的任务,可能需要相当长的时间,所以不想在主线程中执行它。我想要的是在从磁盘读取后调用函数 X。在 iOS 中执行此操作的最佳方法是什么?
到目前为止,这是我尝试过的:
NSInvocationOperation *processDataOperation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(readDisk:) object:nil];
[processDataOperation setQueuePriority:NSOperationQueuePriorityVeryHigh];
[processDataOperation setCompletionBlock:^(void){
NSMutableArray *feedItemsArray = [self generateFeedItemsFromDictionary:streamDiskData];
[self postFetchCompletedNotificationForDict:queryStringDict withFeedItems:feedItemsArray isFresh:NO];
}];
基本上我使用的是 NSInvocationOperation 然后设置它的完成块,但是问题是在我的完成块中我需要在 readDisk 中生成的结果。如何在完成块中访问它?这几乎是不可能的吧?