轻量级的 CoreData 库,用 Swift 编写。
请参阅。
http://jamesonquave.com/blog/core-data-in-swift-tutorial-part-1/
Because of the way Swift modules work, we need to make one modification to the core data model.
In the field “Class” under the data model inspector for our entity, LogItem,
we need to specify the project name as a prefix to the class name.
So instead of just specifying “LogItem” as the class,
it needs to say “MyLog.LogItem”, assuming your app is called “MyLog”.
// DataModel is your dataModel (DataModel.xcdatamodeld)
SwCD.setup("DataModel", dbRootDirPath: nil, dbDirName: nil, dbName: nil)
// Item is NSManagedObject Subclass
let entity = SwCD.createEntity(Item.self)
SwCD.insert(Item.self, entities: [entity], completion: { success, error in
// after call saveWithBlockAndWait function
if success == true {
// do something
} else {
printlin(error)
}
})
let predicate = NSPredicate(format: "name == %@", argumentArray: ["bobo james"])
// results is [Item]
let results = SwCD.find(Item.self, predicate: predicate, sortDescriptors: nil, fetchLimit: nil)
// results is [Item]
let results = SwCD.all(Item.self, sortDescriptors: nil)
// results is Item?
let result = SwCD.findFirst(Item.self, attribute: "identifier == %@", values: ["1"])
// entity is Item?
var entity = SwCD.findFirst(Item.self, attribute: "identifier == %@", values: ["1"])
entity.name = "after"
SwCD.update(Item.self, entities: [entity], completion: nil)
// entity is Item?
var entity = SwCD.findFirst(Item.self, attribute: "identifier == %@", values: ["1"])
SwCD.delete(Item.self, entities: [entity], completion: nil)
// Item is NSManagedObject Subclass
SwCD.deleteAll(Item.self, completion: nil)
MIT 许可协议。有关更多信息,请参阅 LICENSE 文件。