2016-06-22 4 views
0

こんにちは私は、このオブジェクトを、識別子で領域データベースからの更新、取得などのために一意の識別子(プライマリキー)を作成する必要があります。レルムはこれをそのまま受け入れるわけではないので、私はそれを識別する独自の方法を作りたがっていました。ユニークな識別子(プライマリキー)を持つオブジェクトを格納する

class Swing: Object { 

    dynamic var latitude : Double = 0.0 
    dynamic var longitute : Double = 0.0 
    dynamic var speed : Double = 0.0 
    dynamic var date : NSDate = NSDate() 
} 

NSDateを一意のIDとして使用することはできますか?idという名前の新しい列を使用してUUIDStringを使用する必要がありますか?これは新しいオブジェクトやデバイスごとに常にユニークですか?

どのような解決策がフェイルセーフ/正確になるでしょうか?

+0

どのようなユースケースですか? 「スイング」とは何ですか? – Code

+0

UUIDStringの連続した値を出力するテストを実行した場合、この質問をする必要はありません。 – Dominic

答えて

3

NSUUIDをプライマリキーとして使用する方が安全でしょう。彼らはユニークであることが保証されており、NSDate値の種類に応じてあなたのプロパティに保存している、一意性は確実に保証されません。

NSUUIDは128ビットのランダムに生成された値なので、異なるデバイスであっても同じ文字列が2回生成される確率は天文学的に小さくなります。

class Swing: Object { 
    dynamic var id = NSUUID().UUIDString 
    dynamic var latitude : Double = 0.0 
    dynamic var longitute : Double = 0.0 
    dynamic var speed : Double = 0.0 
    dynamic var date : NSDate = NSDate() 

    override class func primaryKey() -> String? { 
     return "id" 
    } 
} 
関連する問題