A brand new Swift abstraction layer for CoreData's original interface
Well, this is exactly the same process as you would do when setting up core data the old way. If you haven't created your app from a template, just:
- create a new Data Model file
- give it the same name as your bundle has (Reloaded is trying to use
kCFBundleNameKey
to generate the expected name) - Create your entities as you would
You can also override the default container name for use in multi-target apps using
CoreData.fallbackContainerName
/// Fallback container name, overrides bundle name globally
/// Use in multitarget apps with shared model
public static var fallbackContainerName: String?
If you don't have your data model (.xcdatamodeld) file yet, jump to the Setup data model section and then come back.
Using Reloaded is super simple, in the basic configuration you don't have to write a single line of setup you would probably otherwise have in your AppDelegate
but you can obviously still leverage your apps delegate methods as you would otherwise.
import Reloaded
// Conform your NSManagedObject to Reloaded own protocol `Entity`
extension Locomotive: Entity { }
// Creating a new object
let loco = try! Locomotive.new()
loco.color = "black"
loco.hasChimney = true
// Save an object
try! loco.save()
// Fetching all black locomotives with a chimney sorted by color
let all = try! Locomotive.query.filter("color" == "red", "hasChimney" == true).sort(by: "color", direction: .orderedDescending).all()
print(all)
Sorry folks but we are ditching support for these two systems in favor of Swift Package Manager
Carthage might work, don't know but we won't be making sure it does anymore ...
Ondrej Rafaj (@rafiki270 on Github, Twitter and LiveUI Slack)