我目前正致力于从远程服务器更新文件。我可以下载文件并将其保存到文档目录中。该文件有一个“Last-Modified”标签,我用它来检查文件是否需要更新。但我的问题是,如何使用标签保存字符串供以后使用?后来我想将保存的字符串与另一个字符串与当前的“Last-Modified”标记进行比较。如果它们相等,则不必更新文件,但如果它们不相等,我将下载新文件。
对不起英语不好,请更正我,任何帮助表示赞赏。一段时间以来一直在努力奋斗!
修改
NSDictionary *metaData = [test allHeaderFields];
//NSLog(@"%@", [metaData description]);
lastModifiedString = [metaData objectForKey:@"Last-Modified"];
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
[standardUserDefaults setObject:lastModifiedString forKey:@"LastModified"];
[standardUserDefaults synchronize];
NSString *savedString = [[NSUserDefaults standardUserDefaults] stringForKey:@"LastModified"];
if (![lastModifiedString isEqualToString:savedString])
{
[self downloadNewFile];
}
下载文件链接:Archive.zip
答案 0 :(得分:2)
使用NSUserDefaults或核心数据来保留值。
修改强>
它无效,因为您在检索新值之前保存了它。你需要搬家
NSString *savedString = [[NSUserDefaults standardUserDefaults] stringForKey:@"LastModified"];
以上
[standardUserDefaults setObject:lastModifiedString forKey:@"LastModified"];
现在,您将比较新文件值与旧用户默认值。
答案 1 :(得分:0)
您是说要比较上次修改日期以查看它们是否相同?
我认为最好的方法是将日期(作为字符串)保存在Property List中。如果您正在制作iPhone应用程序,则可以创建一个包含以下代码的字符串的属性列表。此代码检查文件是否已存在,如果存在,则从中读取,如果不存在,则创建一个文件并写入。
// Get the path to the property list.
NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *pathToPlist = [[pathArray objectAtIndex:0] stringByAppendingPathComponent:@"yourfilename.plist"];
// Check whether there is a plist file that already exists.
BOOL fileExists = [[NSFileManager defaultManager] fileExistsAtPath:pathToPlist];
if (!fileExists) {
// There is no file so we set the file up and save it.
NSMutableDictionary *newDict = [NSMutableDictionary dictionaryWithCapacity:1];
[newDict setObject:yourStringWithTheLastModifiedDate forKey:@"lastModified"];
[newDict writeToFile:pathToPlist atomically:YES];
}
} else {
// There is already a plist file. You could add code here to write to the file rather than read from it.
// Check the value of lastModified.
NSMutableDictionary *dictionary = [NSMutableDictionary dictionaryWithContentsOfFile:pathToPlist];
NSString *lastModifiedDate = [persistentNonResidentData objectForKey:@"lastModified"];
// Add your own code to compare the strings.
}
或者我可能误解了你的问题,这可能不是你想要的所有大声笑。