8549


テキストフィールドに入力された文字をデータベースに登録していく際、`primaryKey`に`autoincrement`を設定したいのですが、`swift`ではどうやって設定すればいいでしょうか？

[code]

    override class func primaryKey() -> String {
            return "id"
    }
    
[/code]

色々調べてみたのですが、上記ようにprimaryKeyを設定する方法しか見つけることができませんでした。どなたか分かる方に教えていただきたいです。すみませんが、よろしくお願いします。


CC BY-SA 3.0
2015-03-29T05:55:30.430
8524
2015-03-30T04:42:50.827
5210
question
swift realm
Realmでauto incrementを設定する


現在RealmにはAuto Incrementの機能はありませんので、必要なら自分でその仕組みを実装する必要があります。  
（Auto Incrementの機能についての要望は多いのでタスクには挙がっていますが、まだその機能がいつリリースされるかは未定です。）

もし、IDがユニークであればよくて、連続していたり、順番に増加していく必要がないのであれば、UUIDをIDとして利用することをお勧めします。  
iOSでUUIDを生成するには`NSUUID`クラスを利用すると簡単です。

連番のIDが必要なのであれば、連番を自分で管理する必要があります。簡単なのは連番を別にクラス変数などで管理することです。この方法なら毎回レコード数をカウントするクエリを発行せずに済む、などのメリットがあります。

もし、このモデルが複数のスレッドから使用される場合は、`nextPrimaryKey()`のようなメソッドをスレッドセーフになるように注意深く実装する必要があります。

こちらの同様の質問も参考にしてください。  
<https://stackoverflow.com/questions/26252432/how-do-i-set-a-auto-increment-
key-in-realm/26257616#26257616>


CC BY-SA 3.0
2015-03-30T04:42:50.827
8549
2015-03-30T04:42:50.827
2017-05-23T12:38:55.307
-1
5519
8524
answer