尝试将plist文件保存到设备目录

时间:2012-09-19 21:22:53

标签: iphone ios plist nsdate

我正在尝试将当前日期保存到我的plist中,然后将plist提交到手机以供以后使用(和更新)。

以下代码是我用来尝试保存日期的代码,但它似乎没有工作,因为它应该只输入“一次”(一旦第一次创建文件)然后每次跳过这个之后..因为它已被创建并可用....

然而这不起作用,我不知道为什么,这是我写的代码;

NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *plistFilePath = [documentsDirectory stringByAppendingPathComponent:@"DB-Date.plist"];

    if(![[NSFileManager defaultManager] fileExistsAtPath:plistFilePath])
    {//dosnt exits

        NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"DB-Date" ofType:@"plist"];
        NSMutableArray *data = [NSMutableArray arrayWithContentsOfFile:plistPath];
        NSArray *arrValue = [data objectAtIndex:0];

        NSDate *dateValue = [arrValue objectAtIndex:0];
        dateValue = [NSDate date]; //change your value here

        [[data objectAtIndex:0] replaceObjectAtIndex:0 withObject:dateValue]; //value replaced
        [data writeToFile:plistFilePath atomically:YES];

    }

//从这里我继续使用新创建的plist文件

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

所以,mainBundle和NSDocumentaryDirectory是两个不同的地方......这应该足以解决你的问题;)

您似乎有很多多余的代码......让我们在括号中执行此操作:

if(![[NSFileManager defaultManager] fileExistsAtPath:plistFilePath])
    {

     NSMutableArray *data = [[NSMutableArray alloc]init];

     NSDate *dateValue  = [NSDate date]; 

    [data addObject:dateValue];

    [data writeToFile:plistFilePath atomically:YES];

   }

如果你喜欢这个答案,请标记为正确。谢谢!

答案 1 :(得分:0)

你正在做正确的方法,但我没有得到出错的地方?你能举个例子吗?顺便说一句,如果你只有日期,为什么不使用NSUserDefaults而不是创建plist文件?