使用Grand Central Dispatch和Block语法执行此操作,
+(void) readStringFromFileWithCompletion:(void (^)(BOOL success,NSString *output))completionBlock{
dispatch_queue_t myQueue = dispatch_queue_create("FileReadingQueue",NULL);
dispatch_async(myQueue, ^{
// Perform long running process
NSString *fileAtPath = [self getLogFilePath];
NSString *output = [[NSString alloc] initWithData:[NSData dataWithContentsOfFile:fileAtPath] encoding:NSUTF8StringEncoding];
completionBlock(true,output);
});
}
使用您的方法,
[self readStringFromFileWithCompletion:^(BOOL success, NSString *output) {
// use 'output' here, to get the string read from file
}];