https://github.com/riywo/managedobjecthelper
A Framework to extend NSManagedObject with some static helper functions.
https://github.com/riywo/managedobjecthelper
carthage coredata framework ios swift
Last synced: 8 months ago
JSON representation
A Framework to extend NSManagedObject with some static helper functions.
- Host: GitHub
- URL: https://github.com/riywo/managedobjecthelper
- Owner: riywo
- License: mit
- Created: 2018-08-26T05:25:13.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2018-09-18T09:07:50.000Z (over 7 years ago)
- Last Synced: 2025-03-29T14:23:34.442Z (about 1 year ago)
- Topics: carthage, coredata, framework, ios, swift
- Language: Swift
- Homepage:
- Size: 21.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# ManagedObjectHelper
[](https://raw.githubusercontent.com/riywo/PreloadedPersistentContainer/master/LICENSE.txt)
[](https://github.com/Carthage/Carthage)
A Framework to extend `NSManagedObject` with some static helper functions. Two of initial intents of this Framework are 1) to avoid type casting by users 2) to keep a default `NSManagedObjectContext` for avoiding context when calling methods.
## Examples
### `NSManagedObjectHelper`
```swift
NSManagedObjectContext.sharedDefault = container.viewContext
extension Entity: NSManagedObject: NSManagedObjectHelper {
}
Entity.all // => Fetch all objects
Entity.countAll // => Return total count
Entity.create() // => Return a new object to store
Entity.search(
format: "foo == %d", 1,
sort: [(key: "bar", asc: true)],
limit: 10) // => Fetch with predicate, sort, and limit
```
### `NSManagedObjectHelperWithKey`
```swift
NSManagedObjectContext.sharedDefault = container.viewContext
extension Entity: NSManagedObject: NSManagedObjectHelperWithKey {
public static var keyName = "id"
public typealias KeyType = Int16
}
Entity.find(1) // Fetch by key or nil
Entity.findOrCreate(1) // Find an existing object or create a new one
```
## Install
Using `Carthage`:
```sh
$ cat Cartfile
github "riywo/ManagedObjectHelper"
$ carthage update
*** Fetching ManagedObjectHelper
*** Checking out ManagedObjectHelper at "v0.1.0"
*** xcodebuild output can be found in /var/folders/29/mmyrpb0d5g39glgdcv9x4z780000gn/T/carthage-xcodebuild.PBBnLr.log
*** Building scheme "ManagedObjectHelper iOS" in ManagedObjectHelper.xcodeproj
*** Building scheme "ManagedObjectHelper macOS" in ManagedObjectHelper.xcodeproj
```
Now, you can use Framework:
```
./Carthage/Build
├── Mac
│ ├── ManagedObjectHelper.framework
│ └── ManagedObjectHelper.framework.dSYM
└── iOS
├── ManagedObjectHelper.framework
└── ManagedObjectHelper.framework.dSYM
```
## Usage
TODO