26

프알못의 Realm 사용기

Embed Size (px)

Citation preview

Page 1: 프알못의 Realm 사용기
Page 2: 프알못의 Realm 사용기

Page 3: 프알못의 Realm 사용기

• https://github.com/iOSDevKor/StartRealm

Realm Browser

• https://itunes.apple.com/kr/app/realm-browser/id1007457278?mt=12

Page 4: 프알못의 Realm 사용기
Page 5: 프알못의 Realm 사용기

16.02.03. 22:00

16.02.07. 18:3016.02.11. 14:00

Page 6: 프알못의 Realm 사용기

class Travel: Object { dynamic var travelTitle: String? dynamic var travelCreationDate: Date = Date() let imageDatas: List<ImageData> = List<ImageData>() }

class ImageData: Object { dynamic var timeStamp: Int = 0 dynamic var country: String? dynamic var city: String? dynamic var image: Data? }

Page 7: 프알못의 Realm 사용기

Page 8: 프알못의 Realm 사용기

Page 9: 프알못의 Realm 사용기

Page 10: 프알못의 Realm 사용기

import RealmSwift

class Album: Object { dynamic var title: String = "" dynamic var createDate: Date = Date() let photos: List<Photo> = List<Photo>() }

class Photo: Object { dynamic var createDate: Date = Date() dynamic var image: Data = Data() }

Page 11: 프알못의 Realm 사용기

let realm = try! Realm()

// configuration( ) let realm = try! Realm(configuration: realmConfig)

// Realm URL let realm = try! Realm(fileURL: realmURL)

Page 12: 프알못의 Realm 사용기

let realm = try! Realm() ( )

do { let realm = try Realm() } catch { print(“\(error)") // handle error } ( )

Page 13: 프알못의 Realm 사용기

try! realm.write { // Do something }

Page 14: 프알못의 Realm 사용기

try! Realm.write { } ( )

do { try realm.write { realm.add(object) realm.delete(object) } } catch { print(“\(error)") // handle error } ( )

Page 15: 프알못의 Realm 사용기

class { var token: NotificationToken!

token = albums.addNotificationBlock({(change) in // Do something

self.UIUpdate() }) }

Page 16: 프알못의 Realm 사용기

Realm.Configuration( // schemaVersion 0 , .

schemaVersion: 3, // schemaVerion , schema . migrationBlock: { { migration, oldSchemaVersion in if oldSchemaVersion < 1 { } if oldSchemaVersion < 2 { }

})

Page 18: 프알못의 Realm 사용기

// schemaVersion0 class Album: Object { dynamic var title: String = "" dynamic var createDate: Date = Date() let photos: List<Photos> = List<Photos>() }

// schemaVersion1 class Album: Object { dynamic var title: String = "" dynamic var createDate: Date = Date() // property dynamic var uuid: String = UUID().uuidString let photos: List<Photos> = List<Photos>() }

Page 19: 프알못의 Realm 사용기

class Album: Object { dynamic var title: String = "" dynamic var createDate: Date = Date() dynamic var uuid: String = UUID().uuidString let photos: List<Photos> = List<Photos>() override class func primaryKey() -> String? { return "uuid" } }

Page 20: 프알못의 Realm 사용기

Device

‣ DB

shift+command+2 > App container >

Simulator

‣ /

Realm.Configuration.defaultConfiguration.fileURL

Page 21: 프알못의 Realm 사용기
Page 23: 프알못의 Realm 사용기
Page 25: 프알못의 Realm 사용기