2011-09-05 6 views

답변

3

이 방법을 appdelegate 파일에 쓸 수 있습니다.

- (void)applicationWillTerminate:(UIApplication *)application { 
    [[NSFileManager defaultManager] removeItemAtPath:[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:[NSString stringWithFormat:@"<your db with extention>"]] error:NULL]; 
} 
+0

도움을 주셔서 감사합니다. 하지만 문제는 여전히 존재합니다. 앱을 빌드하고 실행할 때마다 이전 내용이 그대로 남아 있습니다. – sajaz

+0

먼저 프로젝트에 포함 된 rsd 파일을 살펴 봅니다. 이미 레코드가 채워져 있다고 생각합니다. 거기에서 모든 레코드를 제거하십시오. –

+0

시뮬레이터를 직접 닫지 않고 직접 홈 버튼을 누르면 시뮬레이터를 다시 시작할 수 있습니다. 데이터베이스에서 모든 데이터 제거를 찾을 수 있습니다. –

0

당신은 아래의 방법으로 코드를 다 쓰기는 AppDelegate에 방법에 sqlite가에서 삭제 문을 사용하거나 applicationDidEnterBackground :와 AppDelegate에 방법에 사용할 수 있습니다.

- (void)applicationWillTerminate:(UIApplication *)application 
0

당신은 applicationWillTerminate 또는 applicationWillEnterBackground를 사용할 수 있습니다.

중요한 점은 시뮬레이터에서 앱이 실행 중이고 Xcode에서 빌드하고 다시 실행하면 프로세스가 종료된다는 것입니다. 그것은 잘 종료되지 않고 출구 함수를 통해 이동합니다.

시뮬레이터의 홈 버튼을 누르면 applicationWillEnterBackground이 호출됩니다. 그런 다음 보류 버튼을 두 번 클릭하고 멀티 태스킹 도크에서 앱을 종료하면 applicationWillTerminate이 호출됩니다.

0

iphone에서 지원하거나 db의 경로에서 yourDB.sqlite 파일을 삭제해야하는 경우 드롭 테이블을 사용할 수 있습니다.

NSFileManager *fMgr = [NSFileManager defaultManager]; 
[fMgr removeItemAtPath:dbPath error:NULL]; 

이렇게하면 앱에서 파일이 삭제됩니다.

관련 문제