Update README

This commit is contained in:
Pedro Piñera Buendía 2016-10-07 18:12:06 +02:00
parent 21880fd334
commit 8b2b9599d2

View File

@ -1,4 +1,4 @@
# <center>![xcres](https://github.com/carambalabs/SugarRecord/raw/master/Assets/Caramba.png)</center> # <center>![SugarRecord](Assets/Caramba.png)</center>
[![Twitter: @carambalabs](https://img.shields.io/badge/contact-@carambalabs-blue.svg?style=flat)](https://twitter.com/carambalabs) [![Twitter: @carambalabs](https://img.shields.io/badge/contact-@carambalabs-blue.svg?style=flat)](https://twitter.com/carambalabs)
[![CocoaPods Compatible](https://img.shields.io/cocoapods/v/SugarRecord.svg)](https://img.shields.io/cocoapods/v/SugarRecord.svg) [![CocoaPods Compatible](https://img.shields.io/cocoapods/v/SugarRecord.svg)](https://img.shields.io/cocoapods/v/SugarRecord.svg)
@ -13,8 +13,6 @@ SugarRecord is a persistence wrapper designed to make working with persistence s
The library is maintained by [@carambalabs](https://github.com/carambalabs). You can reach me at [pepibumur@gmail.com](mailto://pepibumur@gmail.com) for help or whatever you need to commend about the library. The library is maintained by [@carambalabs](https://github.com/carambalabs). You can reach me at [pepibumur@gmail.com](mailto://pepibumur@gmail.com) for help or whatever you need to commend about the library.
:warning: Swift 2.3 support has been dropped with the version 3.0 :warning:
[![paypal](https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2AUKNEW4JLPXQ) [![paypal](https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=2AUKNEW4JLPXQ)
@ -65,9 +63,6 @@ We provide extensions for SugarRecord that offer a reactive interface to the lib
- [RxSugarRecord](https://github.com/carambalabs/rxsugarrecord) - [RxSugarRecord](https://github.com/carambalabs/rxsugarrecord)
- [RACSugarRecord](https://github.com/carambalabs/racsugarrecord) - [RACSugarRecord](https://github.com/carambalabs/racsugarrecord)
#### Notes
- SugarRecord 3.0 is not compatible with the 1.x interface. If you were using that version you'll have to update your project to support this version.
## Reference ## Reference
You can check generated SugarRecord documentation [here](http://cocoadocs.org/docsets/SugarRecord/2.0.0/) generated automatically with [CocoaDocs](http://cocoadocs.org/) You can check generated SugarRecord documentation [here](http://cocoadocs.org/docsets/SugarRecord/2.0.0/) generated automatically with [CocoaDocs](http://cocoadocs.org/)
@ -116,11 +111,11 @@ Storages offer multiple kind of contexts that are the entry points to the databa
#### Fetching data #### Fetching data
```swift ```swift
let pedros: [Person] = try! db.fetch(FetchRequest<Person>().filteredWith("name", equalTo: "Pedro")) let pedros: [Person] = try! db.fetch(FetchRequest<Person>().filtered(with: "name", equalTo: "Pedro"))
let tasks: [Task] = try! db.fetch(FetchRequest<Task>()) let tasks: [Task] = try! db.fetch(FetchRequest<Task>())
let citiesByName: [City] = try! db.fetch(FetchRequest<City>().sortedWith("name", ascending: true)) let citiesByName: [City] = try! db.fetch(FetchRequest<City>().sorted(with: "name", ascending: true))
let predicate: NSPredicate = NSPredicate(format: "id == %@", "AAAA") let predicate: NSPredicate = NSPredicate(format: "id == %@", "AAAA")
let john: User? = try! db.fetch(FetchRequest<User>().filteredWith(predicate: predicate)).first let john: User? = try! db.fetch(FetchRequest<User>().filtered(with: predicate)).first
``` ```
#### Remove/Insert/Update operations #### Remove/Insert/Update operations
@ -132,12 +127,11 @@ Although `Context`s offer `insertion` and `deletion` methods that you can use it
```swift ```swift
do { do {
db.operation { (context, save) throws -> Void in db.operation { (context, save) throws in
// Do your operations here // Do your operations here
save() try save()
} }
} } catch {
catch {
// There was an error in the operation // There was an error in the operation
} }
``` ```
@ -147,14 +141,13 @@ You can use the context `new()` method to initialize a model **without inserting
```swift ```swift
do { do {
db.operation { (context, save) throws -> Void in db.operation { (context, save) throws in
let newTask: Track = try! context.new() let newTask: Track = try context.new()
newTask.name = "Make CoreData easier!" newTask.name = "Make CoreData easier!"
try! context.insert(newTask) try context.insert(newTask)
save() try save()
} }
} } catch {
catch {
// There was an error in the operation // There was an error in the operation
} }
``` ```
@ -181,15 +174,14 @@ In a similar way you can use the `remove()` method from the context passing the
```swift ```swift
do { do {
db.operation { (context, save) -> Void in db.operation { (context, save) throws in
let john: User? = try! context.request(User.self).filteredWith("id", equalTo: "1234").fetch().first let john: User? = try context.request(User.self).filteredWith("id", equalTo: "1234").fetch().first
if let john = john { if let john = john {
try! context.remove([john]) try context.remove([john])
save() try save()
} }
} }
} } catch {
catch {
// There was an error in the operation // There was an error in the operation
} }
``` ```
@ -208,7 +200,7 @@ class Presenter {
var observable: RequestObservable<Track>! var observable: RequestObservable<Track>!
func setup() { func setup() {
let request: FetchRequest<Track> = FetchRequest<Track>().filteredWith("artist", equalTo: "pedro") let request: FetchRequest<Track> = FetchRequest<Track>().filtered(with: "artist", equalTo: "pedro")
self.observable = storage.instance.observable(request) self.observable = storage.instance.observable(request)
self.observable.observe { changes in self.observable.observe { changes in
case .Initial(let objects): case .Initial(let objects):