0

我正在尝试将当前日期保存到我的 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 文件

任何帮助将不胜感激。

4

2 回答 2

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];

   }

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

于 2012-09-19T21:59:19.873 回答
0

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

于 2012-09-19T21:33:25.623 回答