如何保存字符串供以后使用?

时间:2012-01-02 17:25:36

标签: objective-c string save compare last-modified

我目前正致力于从远程服务器更新文件。我可以下载文件并将其保存到文档目录中。该文件有一个“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

2 个答案:

答案 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.
}

或者我可能误解了你的问题,这可能不是你想要的所有大声笑。