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)
import DataModelKit
static let path = "Project/Ressources/Sample.xcdatamodel"
let model = try? DataModel(with: DataModelKitTests.pathTest)
print(model.entities)
EasyRealm is available through CocoaPods, Carthage and SPM.
use_frameworks!
pod "DataModelKit"
github 'PoissonBallon/DataModelKit'
dependencies: [
.package(url: "https://github.com/PoissonBallon/DataModelKit.git", .upToNextMinor(from:"1.0.0"))
],
DataModelKit provide somes structs with attribute to exploite your 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
}
public struct Entity {
public let name: String ///
public let userInfos: [UserInfo]
public let attributes: [Attribute]
public let relationships: [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
}
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]
}
- PoissonBallon @poissonballon
DataModelKit is available under the MIT license. See the LICENSE file for more info.
- Thanks to Adrien Groleas for logo
- Thanks to @trpl for text review