2
때로는
그것은, 그 여러 스레드가 액세스 일어날 수있는 내 같은 시간에, 그래서와 상호 작용 FMDatabaseQueue를 사용하기로 결정 FMDatabase 내 SQLite 데이터베이스.
제 생각에 FMDatabaseQueueFMDatabase을 열거 나 닫을 수 없습니다. 이 올바른지?
응용 프로그램 시작시 하나의 FMDatabaseQueue 인스턴스를 만들고, 여러 스레드에서 모든 스레드를 사용하고 응용 프로그램을 종료 할 때 닫는 것이 좋습니까?
그렇지 않은 경우 : 누군가가 FMDatabaseQueue의 작동 방식을 설명 할 수 있습니까?
네, 맞습니다. 사실, 'FMDatabase'를 사용하는 단일 스레드 응용 프로그램에서도 일반적으로 한 번 열어야합니다. – Rob
@Rob 이상하게도'FMDatabse'는'inTransaction'이나'inDatabase'와 같은'FMDatabaseQueue' 메쏘드에서 접근 할 때 열려 있지 않습니다. 'The FMDatabase이 오픈되어 있지 않습니다 .'라는 오류 메시지가 뜹니다.''inTransaction' 메서드의 시작 부분에'[db open]; 코드 줄을 추가하고 잘 작동했습니다. 왜 내가 여기서 명시 적으로 데이터베이스를 열어야하는지 알고 있습니까? 또한 명시 적으로 열었 으면 닫을 필요가 있습니까? –
Sam
@Sam - 이것은 'FMDatabaseQueue'' inDatabase' 또는'inTransaction' 내에서 데이터베이스를'close'했을 때 발생할 수 있습니다. 'FMDatabaseQueue'를 사용할 때, 당신에게 건네지는'FMDatabase'의'close'를 호출해서는 안됩니다. – Rob