質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

2480閲覧

Realmで配列を扱うには?

KaneChan

総合スコア15

Realm

RealmとはSQLiteやCore Dataに代わるモバイルデータベースです。iOSとAndroidの両方でサポートされています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

1クリップ

投稿2017/08/23 14:33

swift3.0
Realm 2.10.0

Realmを使用しているのですが、Realmで配列を扱うにはどうすればよろしいでしょうか?

<実現したいこと>

日付ごとのデータに配列の情報をセットで扱いたいです。

例)日付と色の場合
データ0 [日付]:[配列(赤、青、緑)]
データ1 [日付]:[配列(黄色、白、緑)]
データ2 [日付]:[配列(黒、白、紫)]
.....

現在は

class Data: Object {

dynamic var day: String = ""
let colorList = List<colorData>()

}

class colorData: Object {

dynamic var color: String = ""

}

とlistを使って2種類のクラスを作っているのですが、この場合ですと、colorDataクラスのcolorプロパティにただ色が追加されて行く形となり、日付ごとの配列を所持できません。例えば、Realmデータを書き込む際、プロパティを新たに作ることとかできるのでしょうか?

Realmで配列を扱うにはlistしかありませんが、私のやりたいケースですとどのようにデータを保持すればよろしいでしょうか?よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

swift

1let red = colorData() 2red.color = "赤" 3 4let blue = colorData() 5blue.color = "青" 6 7let green = colorData() 8green.color = "緑" 9 10let yellow = colorData() 11yellow.color = "黄色" 12 13let white = colorData() 14white.color = "白" 15 16let data1 = Data() 17data1.day = "2017/08/30" 18 19data1.colorList.append(red) 20data1.colorList.append(blue) 21data1.colorList.append(green) 22 23let data2 = Data() 24data2.day = "2017/09/01" 25 26data2.colorList.append(yellow) 27data2.colorList.append(white) 28data2.colorList.append(green) 29... 30

記載されているモデルで実現するならこのようにデータを作ります。dayプロパティはDate型の方がいいとか細かい点で改善すべきところはありますが、基本的なモデリングは問題ないと思います。

投稿2017/08/30 14:46

編集2017/08/30 14:46
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KaneChan

2017/09/02 12:48

お返事遅くなり申し訳ありません。 ご回答ありがとうございます! 無事上記のやり方で配列を保存することができました! 誠にありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問