如何在iPhone中关闭应用程序时删除文件目录中的plist?

时间:2010-09-09 11:45:56

标签: iphone plist

我已将数据存储到plist(文档目录)中,并从plist中检索数据并显示在表视图中。现在我想删除plist,当我关闭我的应用程序。我怎样才能做到这一点?。我已经删除了控制器中的plist。但是我在关闭申请后如何删除plist。

例如:

FirstViewController.m:

      -(NSString *) saveFilePath::(NSString *)tagString
      {
            NSArray *arr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

             NSString *strPath = [[arr objectAtIndex:0] stringByAppendingPathComponent:tagString];

            return strPath;
      }

如果我想删除控制器中的plist,我已经使用了这段代码,

        [[NSFileManager defaultManager]  removeItemAtPath:[self saveFilePath:tagString] error:NULL]; (Where do i put this code into my delegate method?)

但是当我的应用程序关闭时,我想删除plist。因为我以前只是暂时在我的控制器中插入。所以我想删除它?我关闭我的应用程序时有没有可能删除plist?

请指导我!

感谢。

2 个答案:

答案 0 :(得分:1)

将您的代码放在Appdelegate类中的applicationWillTerminate方法中。

- (void)applicationWillTerminate:(UIApplication *)application { 
          [[NSFileManager defaultManager]  removeItemAtPath:[self saveFilePath:tagString] error:NULL];>
} 

此外,不会在多任务支持设备上调用applicationWillTerminate。因此,您必须在info.plist中添加UIApplicationExitsOnSuspend键。关于这一点的更多信息

http://iosdevelopertips.com/multitasking/how-to-prevent-your-application-from-being-placed-into-the-background.html

答案 1 :(得分:1)

除了Anil所说的,还可以考虑使用NSCachesDirectory而不是NSDocumentDirectory。当用户同步他的手机时,会备份NSDocumentDirectory的内容。 NSCachesDirectory旨在用于像您这样的临时文件,因此在用户同步时不会备份它。