[解決済み】2つのNSDatesを比較する方法。どちらがより新しいですか?
2022-04-02 09:27:33
質問
ドロップボックスの同期を実現しようとしているのですが、2つのファイルの日付を比較する必要があります。1つは私のdropBoxアカウントにあり、もう1つは私のiPhoneにあります。
以下のように思いついたのですが、予期せぬ結果が出てしまいます。2つの日付を比較するときに、何か根本的に間違ったことをやっているようです。単純に > < 演算子を使いましたが、2つの NSDate 文字列を比較しているので、これではダメなのでしょう。それではどうぞ。
NSLog(@"dB...lastModified: %@", dbObject.lastModifiedDate);
NSLog(@"iP...lastModified: %@", [self getDateOfLocalFile:@"NoteBook.txt"]);
if ([dbObject lastModifiedDate] < [self getDateOfLocalFile:@"NoteBook.txt"]) {
NSLog(@"...db is more up-to-date. Download in progress...");
[self DBdownload:@"NoteBook.txt"];
NSLog(@"Download complete.");
} else {
NSLog(@"...iP is more up-to-date. Upload in progress...");
[self DBupload:@"NoteBook.txt"];
NSLog(@"Upload complete.");
}
この結果、以下のような(ランダムな&amp;間違った)出力が得られました。
2011-05-11 14:20:54.413 NotePage[6918:207] dB...lastModified: 2011-05-11 13:18:25 +0000
2011-05-11 14:20:54.414 NotePage[6918:207] iP...lastModified: 2011-05-11 13:20:48 +0000
2011-05-11 14:20:54.415 NotePage[6918:207] ...db is more up-to-date.
というのがありますが、これはたまたま正しいです。
2011-05-11 14:20:25.097 NotePage[6903:207] dB...lastModified: 2011-05-11 13:18:25 +0000
2011-05-11 14:20:25.098 NotePage[6903:207] iP...lastModified: 2011-05-11 13:19:45 +0000
2011-05-11 14:20:25.099 NotePage[6903:207] ...iP is more up-to-date.
解決方法は?
2つの日付を想定してみましょう。
NSDate *date1;
NSDate *date2;
そして、次の比較で、どちらが先か、後か、同じか、が分かります。
if ([date1 compare:date2] == NSOrderedDescending) {
NSLog(@"date1 is later than date2");
} else if ([date1 compare:date2] == NSOrderedAscending) {
NSLog(@"date1 is earlier than date2");
} else {
NSLog(@"dates are the same");
}
を参照してください。 NSDate クラスのドキュメント をご覧ください。
関連
-
[解決済み] ストーリーボードの警告:プロトタイプのテーブルセルは再利用可能な識別子を持つ必要がある
-
[解決済み] NSComparisonResultとNSComparator - これらは何ですか?
-
[解決済み] クロストラック誤差の計算方法(GPS/コアロケーション)
-
mallocです。オブジェクトxxの***エラー:解放されるポインタが割り当てられていない
-
[解決済み] iOS 6のユーザーエージェントの文字列は何ですか?
-
[解決済み】iOS 6アプリ - iPhone 5の画面サイズに対応する方法は?重複
-
[解決済み】iOS 7 ナビゲーションバーのテキストと矢印の色
-
[解決済み】iPhone - UIViewの位置をUIWindow全体から取得する。
-
[解決済み】"このアプリを評価/レビューする "ためのApp Storeリンク
-
[解決済み】Objective-CやCocoaを書くときに使っているベストプラクティスは何ですか?[解決済み]
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] GLSL(OpenGL ES 2.0)で定数配列を定義する方法を教えてください。
-
[解決済み] KERN_INVALID_ADDRESSとKERN_PROTECTION_FAILUREの違いは何ですか?
-
[解決済み] iPhone UITableView PlainStyleでカスタム背景画像 - "完全に "コードで実行されます。
-
[解決済み] NSComparisonResultとNSComparator - これらは何ですか?
-
アップルスマホの各種サイズとiPhone X、iPhone 11、iPhone 12、iPhone 13の画面適応、ステータスバーの高さ問題の詳細表
-
[解決済み] NSData を String に変換しますか?
-
[解決済み】iPhoneのCoreデータをWebサーバーと同期し、他のデバイスにプッシュする方法は?[クローズド]
-
[解決済み】iPad/iPhoneでCSSの送信ボタンが変な描画になる。
-
[解決済み】Xcode 4がターゲットデバイス上で "finished running <my app>"と表示される -- 何も起こらない
-
[解決済み】iPhoneのUIViewとUILabelsのグラデーション【重複あり