배경 여러 URL을 반복적으로 다운로드하여 여러 파일을 다운로드했습니다. 파일을 다운로드 할 때 파일에서 JSON을 압축 해제하고 SQLite 데이터베이스에 데이터를 삽입해야합니다. 파일이 나는 데이터베이스에 파일의 내용을 삽입하려고하고 파일을 비동기 적으로 다운로드하고 파일이 두 번째 파일은 첫번째 전에 데이터베이스에 삽입 취득하려고 다른 크기 때문에 다운로드비동기식으로 다운로드 한 파일의 내용을 SQLite에 저장
문제 파일이 완료되었으므로 데이터베이스가 후속 파일에 대해 잠겨 있습니다.
QUESTION 다음 파일을 저장하기 전에 이전 파일이 데이터베이스에 저장되기를 기다리는 방법은 무엇입니까?
코드 파일을 얻을 수 있습니다 :
-(void)downloadJsonDataFrom:(NSURL *)url withToken:(NSString*)token saveTo:(NSString *)saveLocation withName:(NSString*)fileName
{
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"GET"];
[request addValue:@"application/json" forHTTPHeaderField:(@"content-type")];
[request addValue:token forHTTPHeaderField:(@"X-TOKEN")];
NSURLSessionConfiguration *sessionConfig = [NSURLSessionConfiguration defaultSessionConfiguration];
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:nil delegateQueue:nil];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * data, NSURLResponse * response, NSError * error) {
if (!error && data) {
NSError *writeError = nil;
BOOL writeOK = [data writeToFile:saveLocation options:NSDataWritingAtomic error:&writeError];
if (writeOK) {
NSLog(@"downloadTheFileFrom writeOK for %@", fileName);
[sqlFileHandler saveJsonToSql:saveLocation];
} else {
NSLog(@"Error writing file : %@ %@", fileName, writeError);
}
} else {
NSLog(@"downloadTheFileFrom Error : %@",error);
}
}];
[dataTask resume];
쓰기 먼저 다음 디스크에있는 모든 파일이 schmidt9 @ 데이터베이스 – schmidt9
에 나는 '에 저장할 이동 데이터베이스 '코드 아웃, 파일을 저장하기 전에 몇 초가 걸릴 파일 다운로드가 끝나기 전에 실행됩니다. – Ryan