Как сохранить строку для дальнейшего использования? - PullRequest
1 голос
/ 02 января 2012

В настоящее время я работаю над обновлением файла с удаленного сервера. Я могу скачать файл и сохранить его в каталоге документов. Файл имеет тег «Last-Modified», и я использую его для проверки необходимости обновления файла. Но мой вопрос: как сохранить строку с тегом для последующего использования? Позже я хочу сравнить сохраненную строку с другой строкой с текущим тегом «Last-Modified». Если они равны, файл не нужно обновлять, но если они не равны, я скачаю новый файл.

Извините за плохой английский, поправьте меня, и любая помощь приветствуется. Некоторое время боролся с этим!

EDIT:

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 ]

2 голосов
/ 02 января 2012

Используйте NSUserDefaults или Базовые данные для сохранения значения.

РЕДАКТИРОВАТЬ:

Не работает, поскольку вы сохраняете новое значениепрежде чем получить его.Вам нужно переместить

NSString *savedString = [[NSUserDefaults standardUserDefaults] stringForKey:@"LastModified"];

выше

[standardUserDefaults setObject:lastModifiedString forKey:@"LastModified"];

Теперь вы будете сравнивать новое значение файла со старым значением по умолчанию пользователя.

0 голосов
/ 02 января 2012

Вы говорите, что хотите сравнить даты последнего изменения, чтобы увидеть, совпадают ли они?

Я думаю, что лучший способ сделать это - сохранить дату (в виде строки) в Список объектов .Если вы создаете приложение для 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.
}

Или, возможно, я неправильно понял ваш вопрос иэто может быть совсем не то, что вы ищете lol.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...