我正在尝试将当前日期保存到我的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文件
任何帮助将不胜感激。
答案 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文件?