你的方法是什么......在iPhone开发过程中消灭你的DocumentsDirectory?

时间:2009-07-25 22:53:45

标签: iphone cocoa-touch xcode

我确信有更好的方法可以做到这一点。我有一大堆代码用于消灭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开发者。如果这就像Python服务器,我只会运行一个脚本,但我不确定XCode / iPhone的惯例是什么。

3 个答案:

答案 0 :(得分:5)

每次我需要清除此目录时,我通常只是从模拟器中删除应用程序。

答案 1 :(得分:2)

你的方法看起来就像我做的那样。但是,你可以改变这个:

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

到此:

[... stringByAppendingPathComponent:[dirContents objectAtIndex:i]];

答案 2 :(得分:1)

我相信你必须这样做......应用程序是“沙盒”的,所以你将无法以任何其他方式访问文档目录。 (但如果我错了,请有人纠正我!)

或者,您可以在构建之前删除应用程序(按住它并点按主屏幕中的X)以擦除任何数据。