2011-12-28 3 views
0

나는 sqlite 기반 아이폰 응용 프로그램에 FMDatabase를 사용하고 있습니다. 문제는 응용 프로그램이 웹 서비스에서 대량 데이터를 가져 와서 UI [메인 스레드]를 차단하는 로컬 sqlite 데이터베이스에 삽입하는 것입니다. 또한 우리는 배경 스레드에서 sqlite 관련 명령을 실행할 수 없습니다. 여기서 NSOperation을 사용할 수 있습니까? 모든 예제 ??FMDatabase 및 NSOperation

답변

1

SQLite 작업은 주 또는 다른 스레드가 아닌 해당 스레드 내에서만 실행하는 한 백그라운드에서 실행할 수 있어야합니다.

최대 동시 작업 수를 1로 설정하여 NSite에 한 번에 하나만 쓰고 NSInvocationOperations를 호출하여 데이터를 저장하도록하려면 NSOperationQueue를 사용하여이 작업을 처리 할 수 ​​있습니다.

NSInvocationOperation * invocation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(writeThisToDB) object:thisObject]; 

[operationQueue addOperation:invocation]; 
관련 문제