ios 如何从 Documents 目录异步读取文件
How to read a file from the Documents directory asynchronously in ios
我想异步读取存储在Documents 目录中的本地文件。我的代码如下:
-(NSString *)getLogFilePath
{
NSString *logFileNameString = logFile;
return [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:logFileNameString];
}
-(NSString *)readStringFromFile
{
NSString *fileAtPath = [self getLogFilePath];
return [[NSString alloc] initWithData:[NSDataWithContentsOfFile:fileAtPath] encoding:NSUTF8StringEncoding];
}
请有人在这方面帮助我。
提前致谢。
使用 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
}];
我想异步读取存储在Documents 目录中的本地文件。我的代码如下:
-(NSString *)getLogFilePath
{
NSString *logFileNameString = logFile;
return [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:logFileNameString];
}
-(NSString *)readStringFromFile
{
NSString *fileAtPath = [self getLogFilePath];
return [[NSString alloc] initWithData:[NSDataWithContentsOfFile:fileAtPath] encoding:NSUTF8StringEncoding];
}
请有人在这方面帮助我。 提前致谢。
使用 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
}];