2012-01-02 8 views
1

現在、リモートサーバーからファイルを更新する作業を行っています。私はファイルをダウンロードして、ドキュメントディレクトリに保存することができます。ファイルには「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

使用NSUserDefaultsまたはコアデータ値を保持します。

EDIT:

あなたはそれを取得する前に、新しい値を保存しているので、それが機能していません。あなたは今、あなたは、古いユーザーのデフォルト値に対して、新しいファイルの値を比較することがあります

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

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

を移動する必要があります。

+0

@Peter_DeWeese NSUserDefaultsを使用しようとしましたが、それは私のためにはうまくいきません。あなたが見たいと思ったら私のコードを質問に追加しました。ありがとう! – Jacob

+0

次回は重要な部分を切り捨てて投稿に追加します。私はあなたのために今それを行い、私の答えを編集します。 –

+0

はい私は、ありがとう! – Jacob

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

質問が間違っているかもしれませんが、あなたが探しているものではないかもしれません。

+0

レスポンスありがとうございますが、これは私が探していたものではありませんでした。 – Jacob

関連する問題