RealmSwiftのListでArrayする方法
環境
- Swift3.0
- Realm Swift
- Xcode8
説明
RealmSwiftをArrayみたいに使うには、Listを使えばいいです。戦士というオブジェクトと武器というオブジェクトを作って、戦士に武器を持たせるプログラムを作ってみます。最後にprintで出力して、戦士がたくさんの武器を保有できていれば成功です
実装
DBの構造
realmData.swift
import Foundation
import RealmSwift
// 武器オブジェクト
class Weapon: Object {
dynamic var name = ""
}
// 戦士オブジェクト
class Warrior: Object {
//戦士が持っている武器一覧
let Weapons = List<Weapon>()
}
データを保存して出力
ViewController.swift
import UIKit
import RealmSwift
var iAmWarrior = Warrior()
var array = Array(iAmWarrior.Weapons)
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
//武器オブジェクトをインスタンス化
//三つの武器を追加
let Weapon1 = Weapon()
Weapon1.name = "鉄砲"
let Weapon2 = Weapon()
Weapon2.name = "斧"
let Weapon3 = Weapon()
Weapon3.name = "剣"
iAmWarrior.Weapons.append(objectsIn: [Weapon1, Weapon2, Weapon3])
print("1回目の武器獲得")
array = Array(iAmWarrior.Weapons)
print( array )
/*
[Weapon {
name = 鉄砲;
}, Weapon {
name = 斧;
}, Weapon {
name = 剣;
}]
*/
let Weapon4 = Weapon()
Weapon4.name = "メリケン"
iAmWarrior.Weapons.append(objectsIn: [Weapon4])
print("2回目の武器獲得")
array = Array(iAmWarrior.Weapons)
print( array )
/*
[Weapon {
name = 鉄砲;
}, Weapon {
name = 斧;
}, Weapon {
name = 剣;
}, Weapon {
name = メリケン;
}]
*/
}
}