VersionLock
public struct VersionLock : ExpressibleByDictionaryLiteral, Equatable
extension VersionLock: CustomStringConvertible, CustomDebugStringConvertible, CoreStoreDebugStringConvertible
The VersionLock contains the version hashes for entities. This is then passed to the CoreStoreSchema, which contains all entities for the store. An assertion will be raised if any Entity doesn’t match the version hash.
class Animal: CoreStoreObject {
let species = Value.Required<String>("species", initial: "")
let nickname = Value.Optional<String>("nickname")
let master = Relationship.ToOne<Person>("master")
}
class Person: CoreStoreObject {
let name = Value.Required<String>("name", initial: "")
let pet = Relationship.ToOne<Animal>("pet", inverse: { $0.master })
}
CoreStoreDefaults.dataStack = DataStack(
CoreStoreSchema(
modelVersion: "V1",
entities: [
Entity<Animal>("Animal"),
Entity<Person>("Person")
],
versionLock: [
"Animal": [0x2698c812ebbc3b97, 0x751e3fa3f04cf9, 0x51fd460d3babc82, 0x92b4ba735b5a3053],
"Person": [0xae4060a59f990ef0, 0x8ac83a6e1411c130, 0xa29fea58e2e38ab6, 0x2071bb7e33d77887]
]
)
)
-
The value type for the dictionary initializer, which is
UInt64Declaration
Swift
public typealias HashElement = UInt64 -
The
Datahash for each entity name.Declaration
Swift
public let hashesByEntityName: [EntityName : Data] -
Initializes a
VersionLockwith the version hash for each entity name.Declaration
Swift
public init(_ intArrayByEntityName: [EntityName : [HashElement]])
-
Declaration
Swift
public typealias Key = EntityName -
Declaration
Swift
public typealias Value = [HashElement] -
Declaration
Swift
public init(dictionaryLiteral elements: (EntityName, [HashElement])...)
-
Declaration
Swift
public static func == (lhs: VersionLock, rhs: VersionLock) -> Bool
-
Declaration
Swift
public var description: String { get }
-
Declaration
Swift
public var debugDescription: String { get }
View on GitHub
VersionLock Structure Reference