Swift3でRealmを使用しListを使いたいが,Listの扱いがわからない
いろいろ調べてみたのですが,Listという物がどういう物なのか,その扱い方がわかりません。
RealmのDBには,subDataTableに複数のDayが 登録され,思うとおりに登録されているのですが,データの取り出し方がわかりません。
"List<subDataTable> (\n\t[0] subDataTable {\n\t\tID = 0;\n\t\tDay = 2017-02-12 11:16:20 +0000;\n\t},\n\t[1] subDataTable {\n\t\tID = 1;\n\t\tDay = 2017-02-12 11:16:20 +0000;\n\t}\n)",
"List<subDataTable> (\n\t[0] subDataTable {\n\t\tID = 0;\n\t\tDay = 2017-02-12 11:16:20 +0000;\n\t},\n\t[1] subDataTable {\n\t\tID = 1;\n\t\tDay = 2017-02-12 11:16:20 +0000;\n\t}\n)")
取り出そうとすると、上記の様になってしまいます。
これを配列などで
ID=0
Day=2017-02-12 11:16:20 +0000
として取り出したいのです。
どうしたら良いのか,ご教授いただけないでしょうか。
よろしくお願いいたします。
import Foundation
import RealmSwift
//メインデータ
class mainDataTable: Object {
dynamic var ID = Date(timeIntervalSince1970: 1)
let Days = List<subDataTable>()
dynamic var Title = String()
dynamic var Category : categoryDataTable?
dynamic var Memo = String()
dynamic var Notification = false
}
//日付データ
class subDataTable: Object {
dynamic var ID = Int()
dynamic var Day = Date(timeIntervalSince1970: 1)
}
//カテゴリ名
class categoryDataTable: Object {
//dynamic var ID = Int()
dynamic var CategoryName = String()
override static func primaryKey() -> String? {
return "CategoryName"
}
}
class RealmConnect{
//デフォルトRealmの取得
let realm = try!Realm()
//データ
var mainData = mainDataTable()
func dataSave(){
// 現在の日時を取得
let now = Date()
//タイムゾーンの設定必要?
let subData1 = subDataTable()
subData1.ID = 0
subData1.Day = now as Date
let subData2 = subDataTable()
subData2.ID = 1
subData2.Day = now as Date
//とりあえずのデータを2件つくって放り込む(Daysも2件のもの)
mainData.ID = now as Date
mainData.Days.append(subData1)
mainData.Days.append(subData2)
mainData.Title = "てすと1"
mainData.Category?.CategoryName = "test"
mainData.Memo = "Memo1"
mainData.Notification = true
//オブジェクトをRealmに追加する
realm.beginWrite()
realm.add(mainData)
try! realm.commitWrite()
let user = realm.objects(mainDataTable.self).sorted(byKeyPath: "ID", ascending: true)
//ここでListの内容を 一件ずつ 取得したいがListの扱い方がわからない
print(user.count)
print(user[0])
let userDays = [user.value(forKeyPath: "Days")!]
print(userDays.count)
print(userDays[0])
for element in userDays {
print(element)
}
print(user.count)
}
}