Realm
Realmを試してみた。便利だ。。
import Foundation import RealmSwift class Man : Object { // ObjectはRealmのクラス dynamic var name = "" // dynamicはobjective-Cのランタイムを利用して値にアクセスする dynamic var age = 10 let cats = List<Cat>() // ListはRealmのクラス } class Cat : Object { dynamic var name = "" let owners = LinkingObjects(fromType: Man.self, property: "cats") } class Test { func test() { let man = Man() man.name = "ho" man.age = 5 let cat = Cat() cat.name = "mi" let realm = try! Realm() try! realm.write { realm.deleteAll() realm.add(man) realm.add(cat) let man = realm.objects(Man.self).filter("name == 'ho'").first! man.cats.append(cat) } let babies = realm.objects(Man.self).filter("age < 2") print("\(babies.count)") DispatchQueue(label: "background").async { autoreleasepool { let realm = try! Realm() let men = realm.objects(Man.self) let man = realm.objects(Man.self).filter("age == 5").first! try! realm.write { man.age = 10 } let cat = realm.objects(Cat.self).filter("name == 'mi'").first! print("\(man.cats.first?.name)") print("\(cat.owners.count)") let babies = realm.objects(Man.self).filter("age == 10") print("\(babies.count)") } } } }