Skip to content

Instantly share code, notes, and snippets.

@chrissloey
Last active January 11, 2019 17:46
Show Gist options
  • Select an option

  • Save chrissloey/bfb598d59b0a447f7899 to your computer and use it in GitHub Desktop.

Select an option

Save chrissloey/bfb598d59b0a447f7899 to your computer and use it in GitHub Desktop.
Extensions to Realm

Extensions to make Realm even simpler.

Transactions

RLMRealm.transaction { realm in
  let person = Person()
  person.name = "Banana King"
  person.age = 24
}

Models

Find by ID Person.find(1)
First Person.first()
Last Person.last()

//
// RealmExtension.swift
//
// Created by Chris Sloey on 16/02/2015.
// Copyright (c) 2015 Add Jam. All rights reserved.
//
import Realm
extension RLMRealm {
class func transaction(block: (RLMRealm)->()) {
let realm = self.defaultRealm()
realm.beginWriteTransaction()
block(realm)
realm.commitWriteTransaction()
}
}
extension RLMObject {
class func find(id: Int) -> RLMObject? {
let predicate = NSPredicate(format: "id = %d", id)
return self.objectsWithPredicate(predicate).firstObject() as RLMObject?
}
class func first() -> RLMObject? {
return self.allObjects().firstObject() as RLMObject?
}
class func last() -> RLMObject? {
return self.allObjects().lastObject() as RLMObject?
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment