编辑——我没有意识到你的问题是 iOS。所以忽略我将字典保存到桌面的方式,但是将 NSDate 保存为字符串的方法是相同的。
如果您更改保存 NSDictionary 的方式,则不必进入 KeydArchiver。
NSDictionary
Key: 1999-08-13 //<----- Have this as a string in your dictionary. Not NSDate
Object: (Array)
"Some string"
"Some other string"
Key: 2000-08-13 //<------Have this as a string in your dictionary. Not NSDate
Object: (Array)
"Some third string"
当您想将 NSDictionary 保存到文件时,您可以这样做:
[MyDictionary writeToFile:@"/Users/yourUsername/Desktop/mySavedDictionary.plist" atomically:YES];
如果要再次加载字典:
NSDictionary *myDictionary = [NSDictionary dictionaryWithContentsOfFile:@"/Users/yourUsername/Desktop/mySavedDictionary.plist"];
加载字典后,假设您想要获取存储在日期 2000-08-13 的数据,那么您可以这样做:
首先我假设 NSDatemyPreviouslyDeclaredDate
是您要在字典中查找的日期,并且其格式为 yyyy-MM-dd。但是,您可以选择您想要的任何格式。使用AppleDocs作为指南。
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *previouslyDeclaredDateInStringForm = [dateFormatter dateFromString:myPreviouslyDeclaredDate];
id objectNeededFromDictionary = [myDictionary objectForKey:previouslyDeclaredDateInStringForm];