Skip to content

Instantly share code, notes, and snippets.

@edwardIshaq
Created September 18, 2015 22:20
Show Gist options
  • Save edwardIshaq/b5810ab35c30df10af24 to your computer and use it in GitHub Desktop.
Save edwardIshaq/b5810ab35c30df10af24 to your computer and use it in GitHub Desktop.
extension Realm {
public class func saveClosure(dbClosure: (Realm)->()) {
do {
let rlm = try Realm()
rlm.write { () -> Void in
dbClosure(rlm)
}
}
catch let rlmError{
print("Realm() generated error: \(rlmError)")
}
}
public class func saveClosure<T:Object>(dbClosure: Realm -> T) -> T {
let tPointer = UnsafeMutablePointer<T>.alloc(1)
do {
let rlm = try Realm()
rlm.write {
tPointer.memory = dbClosure(rlm)
}
}
catch let rlmError{
print("Realm() generated error: \(rlmError)")
}
let result : T = tPointer.memory
tPointer.destroy()
tPointer.dealloc(1)
return result
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment