Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Jun 20, 2023. It is now read-only.

PoissonBallon/DataModelKit

Repository files navigation

DataModelKit

Version Carthage compatible Platform Build Status Swift 4 codecov License

DataModelKit is a simple and light framework to parse and read *.xcdatamodel files. It provides an API to navigate and explore DataModel

It's used in DataModelGen tools. (available soon)

Usage

Init a DataModel Object

import DataModelKit
static let path = "Project/Ressources/Sample.xcdatamodel"
let model = try? DataModel(with: DataModelKitTests.pathTest)
print(model.entities)

Installation

EasyRealm is available through CocoaPods, Carthage and SPM.

CocoaPods

use_frameworks!
pod "DataModelKit"

Carthage

github 'PoissonBallon/DataModelKit'

SPM

 dependencies: [
 .package(url: "https://github.com/PoissonBallon/DataModelKit.git", .upToNextMinor(from:"1.0.0"))
 ],

API

DataModelKit provide somes structs with attribute to exploite your DataModel

DataModel

It is the root object of your DataModel

public struct DataModel { 
 public let path: Struct /// Path of the original file.xcdatamodel
 public let entities: [Entity] /// Parsed model's entities
 public let documentVersion: String /// Version of file.xcdatamodel
 public let systemVersion: String /// System version of file.xcdatamodel
 public let minimumToolsVersion: String /// Minimum tools version of file.xcdatamodel
 public let lastSavedToolsVersion: String /// Last saved tools version of file.xcdatamodel
}

Entity

public struct Entity {
 public let name: String ///
 public let userInfos: [UserInfo]
 public let attributes: [Attribute]
 public let relationships: [Relationship]
}

Relationship

public struct Relationship {
 public let name: String
 public let destination: String
 public let inverse: String?
 public let userInfo: [UserInfo]
 public let toMany: Bool
 public let toOne: Bool
 public let optional: Bool
 public let syncable: Bool
 public let ordered: Bool
}

Attribute

public struct Attribute {
 public let name: String
 public let optional: Bool
 public let indexed: Bool
 public let defaultValue: String?
 public let type: String
 public let userInfos: [UserInfo]
}

Author

License

DataModelKit is available under the MIT license. See the LICENSE file for more info.

Other

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /