NSUserDefaultsに2つの日付(日付範囲)を保存する必要があります。Obj-C、NSUserDefaultsを使用して日付範囲の一意リストを保存/追加する方法は?
範囲は、保存された日付のリストで一意である必要がありますか?
NSUserDefaultsに2つの日付(日付範囲)を保存する必要があります。Obj-C、NSUserDefaultsを使用して日付範囲の一意リストを保存/追加する方法は?
範囲は、保存された日付のリストで一意である必要がありますか?
NSDate
オブジェクトをユーザーのデフォルト値に保存できます。次のようなことをしてください:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:firstDate forKey:@"StartDate"];
[defaults setObject:secondDate forKey:@"EndDate"];
これはthis question of yoursに基づいています。その質問への私の答えとして提供されたDateRangeクラスは-isEqual:
と-hash
のメソッドを実装しているので、NSSetでDateRangeオブジェクトを使用できます。 NSSetは、-isEqual:
に基づいてメンバの一意性を保証します(詳細はNSSetのドキュメントを参照してください)。 NSMutableSetに複数のDateRangeオブジェクトを入れ、NSKeyedArchiverでそのセットをエンコードし、結果のNSDataオブジェクトをNSUserDefaultsに格納するだけです。
リストを一意にすることで、同じ2つの日付が2回保存されないようにするにはどうすればよいですか。 – Jules
@Jules:これはコードで行う必要がありますが、簡単なチェックでは、2番目の範囲の開始日を比較して、> =最初の範囲の開始日と<=終了日を比較します最初の範囲。 – mipadi
NSUserDefaultsからすべての値を読み込んで評価し、必要に応じて保存しなければならないということですか? – Jules