2009-07-25 3 views
2

나는 이것을 할 수있는 더 좋은 방법이있을 것이라고 확신합니다. iPhone 또는 Simulator에서 DocumentsDirectory를 지우는 데 사용하는 코드 조각이 있습니다. 때로는 그냥 깨끗한 슬레이트를 원하고 때로는 데이터베이스를 변경하고 다시 작성해야합니다.iPhone 개발 중 DocumentsDirectory를 삭제하는 방법은 무엇입니까?

그래서 내 앱을 켤 때 호출되는 내 함수 중 하나에서이 코드를 주석 처리했으며 재설정하려고 할 때 주석 블록을 제거합니다. 너 뭐하니?

NSFileManager *fileManager = [NSFileManager defaultManager]; 
NSArray *paths = NSSearchPathForDirectoriesInDomains (NSDocumentDirectory, NSUserDomainMask, YES); 
NSArray *dirContents = [fileManager directoryContentsAtPath:[paths objectAtIndex:0]]; 

for (int i=0; i<[dirContents count]; ++i) { 
    NSString* theDir = [[paths objectAtIndex:0] stringByAppendingString:[@"/" stringByAppendingString:[dirContents objectAtIndex:i]]]; 
    NSLog(theDir); 
    if ([fileManager removeItemAtPath: theDir error:NULL]) { 
    NSLog(@"removed dir"); 
    } 
} 

저는 초보자 iPhone 개발자입니다. 이것이 파이썬 서버와 같은 것이라면, 나는 스크립트를 실행하고 싶지만, Xcode/iPhone 컨벤션이 무엇인지 잘 모르겠습니다.

답변

1

나는 그것이 당신이해야하는 방법이라고 생각합니다 ... 애플 리케이션은 "sandboxed"그래서 당신은 다른 방법으로 문서 디렉토리에 도착할 수 없을 것입니다. (그러나 내가 틀렸다면 누군가 올바른 정보를 보내주십시오!)

또는 건물을 만들기 전에 앱을 지울 수도 있습니다 (홈 화면에서 X 키를 누른 상태로 유지). 데이터를 지울 수 있습니다.

5

일반적으로이 디렉토리를 지울 때마다 시뮬레이터에서 앱을 삭제하면됩니다.

2

당신의 방법은 내가하는 것과 비슷합니다. 그러나이를 변경할 수 있습니다

[... stringByAppendingString:[@"/" stringByAppendingString:[dirContents objectAtIndex:i]]]; 

을 여기에 :

[... stringByAppendingPathComponent:[dirContents objectAtIndex:i]]; 
관련 문제