質問: ["hoge","fuga","miso"] //realmに格納するObject class Task: Object{ dynamic var name: String! //タスクの詳細 } ``` しかし、確か(なのですが)realmSwiftではObject型を継承していない普通の配列を保存することが出来なかったはずで........ ここだけUserDefaultsを使うべきかと迷っています。 realmSwiftで配列を保存できる簡単な方法というのはあるのでしょうか? よろしくお願いいたします
回答: 確か別のサイトで同じ質問があり、そちらで解決されたと思いますが、こちらが未解決なのもなんなので同じ回答を転記します。 いろいろやり方はありますが、おっしゃられていることはTaskの順番を記憶したいということですので、大きく2つの方法があります。 まずはオーソドックスに順番を表すプロパティをTaskに持つことです。 この方法はRealmに限らず他のデータベースでもよく使われる基本的なモデリングの考え方になります。 もう一つは、Realmの場合は順番を保持する方法として`List`が使えるので、「タスク名」ではなくタスクそのものを`List`で管理してしまうという方法です。 この方法のメリットは扱いが簡単になることと、先の方法と違って、ソートしなくても良いという点です。 例えば次のような`TaskList`というクラスをもう一つ作ります。 ``` class TaskList: Object { let list = List() } ``` そして、下記のようにして利用します。 ``` let task = Task() task.name = "..." let taskList = TaskList() taskList.list.append(task) ``` `list`は順番が保持されていますので、これをそのまま利用すればいいです。 なお、順番を保存するためだけに`NSUserDefaults`を使う、という案は、ややこしくなるだけでメリットはほぼないと思います。