Compare commits

..

16 Commits

Author SHA1 Message Date
John Estropia
b2dba0d6fd update pod version and jazzy docs 2019-03-31 00:29:43 +09:00
John Estropia
6f290213fa update README 2019-03-31 00:05:13 +09:00
John Estropia
0ab52d2f43 converted *Result types to new Swift.Result 2019-03-30 23:58:26 +09:00
John Estropia
bf8a1062e0 deleted obsoleted and deprecated API 2019-03-30 23:56:39 +09:00
John Estropia
0e254867b6 update project for Swift 5 / Xcode 10.2 2019-03-30 23:36:56 +09:00
John Estropia
0376ac6908 bump 2019-02-28 18:57:28 +09:00
John Estropia
b3421888a6 version bump 2019-02-28 18:55:32 +09:00
John Estropia
7b3f4ae0a4 fix compile error 2019-02-28 17:58:17 +09:00
John Estropia
b4e12cc922 restore NSPersistentStore.affectedStores ARC bug workaround 2019-02-28 17:57:34 +09:00
John Estropia
6c282b18af version bump 2019-02-28 13:14:27 +09:00
John Estropia
ebbde8b7b6 minor fix in demo app 2019-02-28 13:13:01 +09:00
John Estropia
a1407e4121 Revert workaround for iOS 10 NSFetchedResultsController (#100) 2019-02-28 13:07:47 +09:00
John Estropia
99b871b97a add missing documentations for Where.Expression, updated playgrounds 2019-02-20 18:47:29 +09:00
John Estropia
1cd3c4fcf4 fix compile error 2019-02-12 18:18:44 +09:00
John Estropia
e09ac9ee00 add macOS playground 2019-02-12 18:05:06 +09:00
John Estropia
4b0d134acb remove swift 5 annotation 2019-02-12 18:03:59 +09:00
435 changed files with 60489 additions and 17183 deletions

1
.gitignore vendored
View File

@@ -8,3 +8,4 @@ CoreStore.xcworkspace/xcuserdata
DerivedData
*.orig
build
Playground_macOS.playground/playground.xcworkspace/xcuserdata

View File

@@ -1,5 +1,5 @@
language: objective-c
osx_image: xcode10
osx_image: xcode10.2
sudo: false
git:
submodules: false
@@ -24,13 +24,8 @@ env:
before_install:
- gem install cocoapods --no-rdoc --no-ri --no-document --quiet
- gem install xcpretty --no-rdoc --no-ri --no-document --quiet
- curl -OlL "https://github.com/Carthage/Carthage/releases/download/0.26.0/Carthage.pkg"
- sudo installer -pkg "Carthage.pkg" -target /
- rm "Carthage.pkg"
- npm install ios-sim -g
- ios-sim start --devicetypeid "com.apple.CoreSimulator.SimDeviceType.iPhone-8, 11.0"
before_script:
- carthage update --use-submodules
script:
- set -o pipefail
- xcodebuild -version

View File

@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
s.name = "CoreStore"
s.version = "6.0.0"
s.swift_version = "4.2"
s.version = "6.3.0"
s.swift_version = "5.0"
s.license = "MIT"
s.homepage = "https://github.com/JohnEstropia/CoreStore"
s.documentation_url = "https://JohnEstropia.github.io/CoreStore"

Binary file not shown.

View File

@@ -27,7 +27,6 @@
82BA18AE1C4BBD3100A0916E /* DataStack+Transaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EEC1AFF846E0064E85B /* DataStack+Transaction.swift */; };
82BA18AF1C4BBD3100A0916E /* CoreStore+Transaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EEE1AFF846E0064E85B /* CoreStore+Transaction.swift */; };
82BA18B01C4BBD3100A0916E /* NSManagedObject+Transaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B50392F81C478FF3009900CA /* NSManagedObject+Transaction.swift */; };
82BA18B11C4BBD3100A0916E /* SaveResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EF21AFF846E0064E85B /* SaveResult.swift */; };
82BA18B21C4BBD3900A0916E /* ImportableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F1DA8C1B9AA97D007C5CBB /* ImportableObject.swift */; };
82BA18B31C4BBD3900A0916E /* ImportableUniqueObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F1DA8F1B9AA991007C5CBB /* ImportableUniqueObject.swift */; };
82BA18B41C4BBD3900A0916E /* BaseDataTransaction+Importing.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E834B81B76311F001D3D50 /* BaseDataTransaction+Importing.swift */; };
@@ -165,10 +164,6 @@
B52557881D02DE8100E51965 /* FetchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B52557871D02DE8100E51965 /* FetchTests.swift */; };
B52557891D02DE8100E51965 /* FetchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B52557871D02DE8100E51965 /* FetchTests.swift */; };
B525578A1D02DE8100E51965 /* FetchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B52557871D02DE8100E51965 /* FetchTests.swift */; };
B529C2041CA4A2DB007E7EBD /* CSSaveResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B529C2031CA4A2DB007E7EBD /* CSSaveResult.swift */; };
B529C2061CA4A2DB007E7EBD /* CSSaveResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B529C2031CA4A2DB007E7EBD /* CSSaveResult.swift */; };
B529C2071CA4A2DC007E7EBD /* CSSaveResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B529C2031CA4A2DB007E7EBD /* CSSaveResult.swift */; };
B529C2081CA4A2DC007E7EBD /* CSSaveResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B529C2031CA4A2DB007E7EBD /* CSSaveResult.swift */; };
B52DD17E1BE1F8CD00949AFE /* CoreStore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B52DD1741BE1F8CC00949AFE /* CoreStore.framework */; };
B52DD1931BE1F8FD00949AFE /* CoreStore.h in Headers */ = {isa = PBXBuildFile; fileRef = 2F03A53519C5C6DA005002A5 /* CoreStore.h */; settings = {ATTRIBUTES = (Public, ); }; };
B52DD1941BE1F92500949AFE /* CoreStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F291E2619C6D3CF007AF63F /* CoreStore.swift */; };
@@ -185,7 +180,6 @@
B52DD1A01BE1F92C00949AFE /* UnsafeDataTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EED1AFF846E0064E85B /* UnsafeDataTransaction.swift */; };
B52DD1A11BE1F92C00949AFE /* DataStack+Transaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EEC1AFF846E0064E85B /* DataStack+Transaction.swift */; };
B52DD1A21BE1F92C00949AFE /* CoreStore+Transaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EEE1AFF846E0064E85B /* CoreStore+Transaction.swift */; };
B52DD1A31BE1F92C00949AFE /* SaveResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EF21AFF846E0064E85B /* SaveResult.swift */; };
B52DD1A41BE1F92F00949AFE /* ImportableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F1DA8C1B9AA97D007C5CBB /* ImportableObject.swift */; };
B52DD1A51BE1F92F00949AFE /* ImportableUniqueObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F1DA8F1B9AA991007C5CBB /* ImportableUniqueObject.swift */; };
B52DD1A61BE1F92F00949AFE /* BaseDataTransaction+Importing.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E834B81B76311F001D3D50 /* BaseDataTransaction+Importing.swift */; };
@@ -293,6 +287,10 @@
B546F9741C9C553300D5AC55 /* SetupResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B546F9721C9C553300D5AC55 /* SetupResult.swift */; };
B546F9751C9C553300D5AC55 /* SetupResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B546F9721C9C553300D5AC55 /* SetupResult.swift */; };
B546F9761C9C553300D5AC55 /* SetupResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B546F9721C9C553300D5AC55 /* SetupResult.swift */; };
B5474D152227C08700B21FEC /* CoreStoreFetchRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5474D142227C08700B21FEC /* CoreStoreFetchRequest.swift */; };
B5474D162227C08700B21FEC /* CoreStoreFetchRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5474D142227C08700B21FEC /* CoreStoreFetchRequest.swift */; };
B5474D172227C08700B21FEC /* CoreStoreFetchRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5474D142227C08700B21FEC /* CoreStoreFetchRequest.swift */; };
B5474D182227C08700B21FEC /* CoreStoreFetchRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5474D142227C08700B21FEC /* CoreStoreFetchRequest.swift */; };
B5489F3F1CF5EEBC008B4978 /* TestEntity1.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5489F3D1CF5EEBC008B4978 /* TestEntity1.swift */; };
B5489F401CF5EEBC008B4978 /* TestEntity1.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5489F3D1CF5EEBC008B4978 /* TestEntity1.swift */; };
B5489F411CF5EEBC008B4978 /* TestEntity1.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5489F3D1CF5EEBC008B4978 /* TestEntity1.swift */; };
@@ -367,7 +365,6 @@
B563218B1BD65216006C9394 /* UnsafeDataTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EED1AFF846E0064E85B /* UnsafeDataTransaction.swift */; };
B563218C1BD65216006C9394 /* DataStack+Transaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EEC1AFF846E0064E85B /* DataStack+Transaction.swift */; };
B563218D1BD65216006C9394 /* CoreStore+Transaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EEE1AFF846E0064E85B /* CoreStore+Transaction.swift */; };
B563218E1BD65216006C9394 /* SaveResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EF21AFF846E0064E85B /* SaveResult.swift */; };
B563218F1BD65216006C9394 /* ImportableObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F1DA8C1B9AA97D007C5CBB /* ImportableObject.swift */; };
B56321901BD65216006C9394 /* ImportableUniqueObject.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F1DA8F1B9AA991007C5CBB /* ImportableUniqueObject.swift */; };
B56321911BD65216006C9394 /* BaseDataTransaction+Importing.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E834B81B76311F001D3D50 /* BaseDataTransaction+Importing.swift */; };
@@ -410,10 +407,6 @@
B565079A1D3930D1000596DA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B56507991D3930D1000596DA /* Foundation.framework */; };
B565079E1D3930ED000596DA /* CoreData.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B565079D1D3930ED000596DA /* CoreData.framework */; };
B56507A01D3930F5000596DA /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B565079F1D3930F5000596DA /* Foundation.framework */; };
B5677D3D1CD3B1E400322BFC /* ICloudStoreObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5677D3C1CD3B1E400322BFC /* ICloudStoreObserver.swift */; };
B5677D3F1CD3B1E400322BFC /* ICloudStoreObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5677D3C1CD3B1E400322BFC /* ICloudStoreObserver.swift */; };
B5677D401CD3B1E400322BFC /* ICloudStoreObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5677D3C1CD3B1E400322BFC /* ICloudStoreObserver.swift */; };
B5677D411CD3B1E400322BFC /* ICloudStoreObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5677D3C1CD3B1E400322BFC /* ICloudStoreObserver.swift */; };
B56923C41EB823B4007C4DC9 /* NSEntityDescription+Migration.swift in Sources */ = {isa = PBXBuildFile; fileRef = B56923C31EB823B4007C4DC9 /* NSEntityDescription+Migration.swift */; };
B56923C51EB823B4007C4DC9 /* NSEntityDescription+Migration.swift in Sources */ = {isa = PBXBuildFile; fileRef = B56923C31EB823B4007C4DC9 /* NSEntityDescription+Migration.swift */; };
B56923C61EB823B4007C4DC9 /* NSEntityDescription+Migration.swift in Sources */ = {isa = PBXBuildFile; fileRef = B56923C31EB823B4007C4DC9 /* NSEntityDescription+Migration.swift */; };
@@ -499,10 +492,6 @@
B598514A1C90289E00C99590 /* NSPersistentStoreCoordinator+Setup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59AFF401C6593E400C0ABE2 /* NSPersistentStoreCoordinator+Setup.swift */; };
B598514B1C90289F00C99590 /* NSPersistentStoreCoordinator+Setup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59AFF401C6593E400C0ABE2 /* NSPersistentStoreCoordinator+Setup.swift */; };
B59AFF411C6593E400C0ABE2 /* NSPersistentStoreCoordinator+Setup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59AFF401C6593E400C0ABE2 /* NSPersistentStoreCoordinator+Setup.swift */; };
B59FA0AE1CCBAC95007C9BCA /* ICloudStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59FA0AD1CCBAC95007C9BCA /* ICloudStore.swift */; };
B59FA0B01CCBACA7007C9BCA /* ICloudStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59FA0AD1CCBAC95007C9BCA /* ICloudStore.swift */; };
B59FA0B11CCBACA7007C9BCA /* ICloudStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59FA0AD1CCBAC95007C9BCA /* ICloudStore.swift */; };
B59FA0B21CCBACA8007C9BCA /* ICloudStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59FA0AD1CCBAC95007C9BCA /* ICloudStore.swift */; };
B5A1DAC81F111BFA003CF369 /* KeyPath+Querying.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5A1DAC71F111BFA003CF369 /* KeyPath+Querying.swift */; };
B5A1DAC91F111BFA003CF369 /* KeyPath+Querying.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5A1DAC71F111BFA003CF369 /* KeyPath+Querying.swift */; };
B5A1DACA1F111BFA003CF369 /* KeyPath+Querying.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5A1DAC71F111BFA003CF369 /* KeyPath+Querying.swift */; };
@@ -572,10 +561,6 @@
B5D33A041E96012400C880DE /* Relationship.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5D33A001E96012400C880DE /* Relationship.swift */; };
B5D372841A39CD6900F583D9 /* Model.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = B5D372821A39CD6900F583D9 /* Model.xcdatamodeld */; };
B5D39A0219FD00C9000E91BB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B5D39A0119FD00C9000E91BB /* Foundation.framework */; };
B5D3F6451C887C0A00C7492A /* LegacySQLiteStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5D3F6441C887C0A00C7492A /* LegacySQLiteStore.swift */; };
B5D3F6461C887C0A00C7492A /* LegacySQLiteStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5D3F6441C887C0A00C7492A /* LegacySQLiteStore.swift */; };
B5D3F6471C887C0A00C7492A /* LegacySQLiteStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5D3F6441C887C0A00C7492A /* LegacySQLiteStore.swift */; };
B5D3F6481C887C0A00C7492A /* LegacySQLiteStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5D3F6441C887C0A00C7492A /* LegacySQLiteStore.swift */; };
B5D7A5B61CA3BF8F005C752B /* CSInto.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5D7A5B51CA3BF8F005C752B /* CSInto.swift */; };
B5D7A5B81CA3BF8F005C752B /* CSInto.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5D7A5B51CA3BF8F005C752B /* CSInto.swift */; };
B5D7A5B91CA3BF8F005C752B /* CSInto.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5D7A5B51CA3BF8F005C752B /* CSInto.swift */; };
@@ -638,7 +623,6 @@
B5E84EF61AFF846E0064E85B /* DataStack+Transaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EEC1AFF846E0064E85B /* DataStack+Transaction.swift */; };
B5E84EF71AFF846E0064E85B /* UnsafeDataTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EED1AFF846E0064E85B /* UnsafeDataTransaction.swift */; };
B5E84EF81AFF846E0064E85B /* CoreStore+Transaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EEE1AFF846E0064E85B /* CoreStore+Transaction.swift */; };
B5E84EFB1AFF846E0064E85B /* SaveResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EF21AFF846E0064E85B /* SaveResult.swift */; };
B5E84EFC1AFF846E0064E85B /* SynchronousDataTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EF31AFF846E0064E85B /* SynchronousDataTransaction.swift */; };
B5E84F0D1AFF847B0064E85B /* BaseDataTransaction+Querying.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EFE1AFF847B0064E85B /* BaseDataTransaction+Querying.swift */; };
B5E84F0E1AFF847B0064E85B /* Tweak.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F001AFF847B0064E85B /* Tweak.swift */; };
@@ -800,7 +784,6 @@
B525577F1D029D2500E51965 /* TweakTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TweakTests.swift; sourceTree = "<group>"; };
B52557831D02A07400E51965 /* SectionByTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SectionByTests.swift; sourceTree = "<group>"; };
B52557871D02DE8100E51965 /* FetchTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchTests.swift; sourceTree = "<group>"; };
B529C2031CA4A2DB007E7EBD /* CSSaveResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CSSaveResult.swift; sourceTree = "<group>"; };
B52DD1741BE1F8CC00949AFE /* CoreStore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CoreStore.framework; sourceTree = BUILT_PRODUCTS_DIR; };
B52DD17D1BE1F8CC00949AFE /* CoreStoreTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CoreStoreTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
B52F742E1E9B50D0005F3DAC /* SchemaHistory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SchemaHistory.swift; sourceTree = "<group>"; };
@@ -823,6 +806,7 @@
B546F95C1C9A12B800D5AC55 /* CSSQliteStore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CSSQliteStore.swift; sourceTree = "<group>"; };
B546F9681C9AF26D00D5AC55 /* CSInMemoryStore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CSInMemoryStore.swift; sourceTree = "<group>"; };
B546F9721C9C553300D5AC55 /* SetupResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SetupResult.swift; sourceTree = "<group>"; };
B5474D142227C08700B21FEC /* CoreStoreFetchRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CoreStoreFetchRequest.swift; sourceTree = "<group>"; };
B5489F3D1CF5EEBC008B4978 /* TestEntity1.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestEntity1.swift; sourceTree = "<group>"; };
B5489F3E1CF5EEBC008B4978 /* TestEntity2.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestEntity2.swift; sourceTree = "<group>"; };
B5489F451CF5F017008B4978 /* TransactionTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TransactionTests.swift; sourceTree = "<group>"; };
@@ -853,7 +837,6 @@
B56507991D3930D1000596DA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
B565079D1D3930ED000596DA /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/CoreData.framework; sourceTree = DEVELOPER_DIR; };
B565079F1D3930F5000596DA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
B5677D3C1CD3B1E400322BFC /* ICloudStoreObserver.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ICloudStoreObserver.swift; sourceTree = "<group>"; };
B56923C31EB823B4007C4DC9 /* NSEntityDescription+Migration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSEntityDescription+Migration.swift"; sourceTree = "<group>"; };
B56923C81EB82410007C4DC9 /* NSManagedObjectModel+Migration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSManagedObjectModel+Migration.swift"; sourceTree = "<group>"; };
B56923DC1EB827F5007C4DC9 /* CustomSchemaMappingProvider.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomSchemaMappingProvider.swift; sourceTree = "<group>"; };
@@ -876,10 +859,11 @@
B596BBB51DD5BC67001DCDD9 /* FetchableSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FetchableSource.swift; sourceTree = "<group>"; };
B596BBBA1DD5C39F001DCDD9 /* QueryableSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QueryableSource.swift; sourceTree = "<group>"; };
B59AFF401C6593E400C0ABE2 /* NSPersistentStoreCoordinator+Setup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSPersistentStoreCoordinator+Setup.swift"; sourceTree = "<group>"; };
B59FA0AD1CCBAC95007C9BCA /* ICloudStore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ICloudStore.swift; sourceTree = "<group>"; };
B5A1DAC71F111BFA003CF369 /* KeyPath+Querying.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "KeyPath+Querying.swift"; sourceTree = "<group>"; };
B5A261201B64BFDB006EB6D3 /* MigrationType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MigrationType.swift; sourceTree = "<group>"; };
B5A5F2651CAEC50F004AB9AF /* CSSelect.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CSSelect.swift; sourceTree = "<group>"; };
B5A80DF42212C1AB006096AA /* Playground_macOS.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = Playground_macOS.playground; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
B5A80DF52212C1BC006096AA /* Playground_iOS.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = Playground_iOS.playground; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
B5A991EB1E9DC2CE0091A2E3 /* VersionLock.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VersionLock.swift; sourceTree = "<group>"; };
B5A9921E1EA898710091A2E3 /* UserInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfo.swift; sourceTree = "<group>"; };
B5AD60CD1C90141E00F2B2E8 /* Package.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Package.swift; sourceTree = SOURCE_ROOT; };
@@ -902,7 +886,6 @@
B5D33A001E96012400C880DE /* Relationship.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Relationship.swift; sourceTree = "<group>"; };
B5D372831A39CD6900F583D9 /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = "<group>"; };
B5D39A0119FD00C9000E91BB /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
B5D3F6441C887C0A00C7492A /* LegacySQLiteStore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LegacySQLiteStore.swift; sourceTree = "<group>"; };
B5D7A5B51CA3BF8F005C752B /* CSInto.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CSInto.swift; sourceTree = "<group>"; };
B5D9C8F61B160ED200E64F0E /* CoreStore.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; path = CoreStore.podspec; sourceTree = SOURCE_ROOT; };
B5DAFB472203D9F8003FCCD0 /* Where.Expression.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Where.Expression.swift; sourceTree = "<group>"; };
@@ -935,7 +918,6 @@
B5E84EEC1AFF846E0064E85B /* DataStack+Transaction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "DataStack+Transaction.swift"; sourceTree = "<group>"; };
B5E84EED1AFF846E0064E85B /* UnsafeDataTransaction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UnsafeDataTransaction.swift; sourceTree = "<group>"; };
B5E84EEE1AFF846E0064E85B /* CoreStore+Transaction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CoreStore+Transaction.swift"; sourceTree = "<group>"; };
B5E84EF21AFF846E0064E85B /* SaveResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SaveResult.swift; sourceTree = "<group>"; };
B5E84EF31AFF846E0064E85B /* SynchronousDataTransaction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SynchronousDataTransaction.swift; sourceTree = "<group>"; };
B5E84EFE1AFF847B0064E85B /* BaseDataTransaction+Querying.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "BaseDataTransaction+Querying.swift"; sourceTree = "<group>"; };
B5E84F001AFF847B0064E85B /* Tweak.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Tweak.swift; sourceTree = "<group>"; };
@@ -961,7 +943,6 @@
B5E84F351AFF85470064E85B /* NSManagedObjectContext+Querying.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSManagedObjectContext+Querying.swift"; sourceTree = "<group>"; };
B5E84F401AFF8CCD0064E85B /* TypeErasedClauses.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TypeErasedClauses.swift; sourceTree = "<group>"; };
B5E8A71F21C1015300EF006A /* CoreStoreObject+Observing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CoreStoreObject+Observing.swift"; sourceTree = "<group>"; };
B5E8A72621C3B85000EF006A /* Playground.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = Playground.playground; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
B5ECDBDE1CA6BB2B00C7F112 /* CSBaseDataTransaction+Querying.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "CSBaseDataTransaction+Querying.swift"; sourceTree = "<group>"; };
B5ECDBE41CA6BEA300C7F112 /* CSClauseTypes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CSClauseTypes.swift; sourceTree = "<group>"; };
B5ECDBEB1CA6BF2000C7F112 /* CSFrom.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CSFrom.swift; sourceTree = "<group>"; };
@@ -1052,7 +1033,8 @@
2F03A52619C5C6DA005002A5 = {
isa = PBXGroup;
children = (
B5E8A72621C3B85000EF006A /* Playground.playground */,
B5A80DF52212C1BC006096AA /* Playground_iOS.playground */,
B5A80DF42212C1AB006096AA /* Playground_macOS.playground */,
2F291E3119C6D4D3007AF63F /* Frameworks */,
2F03A53219C5C6DA005002A5 /* Sources */,
2F03A53C19C5C6DA005002A5 /* CoreStoreTests */,
@@ -1259,7 +1241,6 @@
B5E222291CA51B6E00BA2E95 /* CSUnsafeDataTransaction.swift */,
B5ECDC281CA81CC700C7F112 /* CSDataStack+Transaction.swift */,
B5ECDC2E1CA81CDC00C7F112 /* CSCoreStore+Transaction.swift */,
B529C2031CA4A2DB007E7EBD /* CSSaveResult.swift */,
);
name = Transactions;
sourceTree = "<group>";
@@ -1458,7 +1439,6 @@
B5E84EEC1AFF846E0064E85B /* DataStack+Transaction.swift */,
B5E84EEE1AFF846E0064E85B /* CoreStore+Transaction.swift */,
B50392F81C478FF3009900CA /* NSManagedObject+Transaction.swift */,
B5E84EF21AFF846E0064E85B /* SaveResult.swift */,
);
name = Transactions;
sourceTree = "<group>";
@@ -1537,6 +1517,7 @@
children = (
B5831B6F1F34AC3400A9F647 /* AttributeProtocol.swift */,
B5831B741F34AC7A00A9F647 /* RelationshipProtocol.swift */,
B5474D142227C08700B21FEC /* CoreStoreFetchRequest.swift */,
B5C976E61C6E3A5900B1AF90 /* CoreStoreFetchedResultsController.swift */,
B53B275E1EE3B92E00E9B352 /* CoreStoreManagedObject.swift */,
B533C4DA1D7D4BFA001383CB /* DispatchQueue+CoreStore.swift */,
@@ -1588,9 +1569,6 @@
B5FE4DA11C8481E100FA6A91 /* StorageInterface.swift */,
B5FE4DA61C84FB4400FA6A91 /* InMemoryStore.swift */,
B5FE4DAB1C85D44E00FA6A91 /* SQLiteStore.swift */,
B5D3F6441C887C0A00C7492A /* LegacySQLiteStore.swift */,
B59FA0AD1CCBAC95007C9BCA /* ICloudStore.swift */,
B5677D3C1CD3B1E400322BFC /* ICloudStoreObserver.swift */,
);
name = StorageInterfaces;
sourceTree = "<group>";
@@ -1770,7 +1748,7 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0730;
LastUpgradeCheck = 0930;
LastUpgradeCheck = 1020;
ORGANIZATIONNAME = "John Rommel Estropia";
TargetAttributes = {
2F03A52F19C5C6DA005002A5 = {
@@ -1807,6 +1785,7 @@
developmentRegion = English;
hasScannedForEncodings = 0;
knownRegions = (
English,
en,
Base,
);
@@ -1891,11 +1870,9 @@
B5F1DA901B9AA991007C5CBB /* ImportableUniqueObject.swift in Sources */,
B51260891E9B252B00402229 /* NSEntityDescription+DynamicModel.swift in Sources */,
B504D0D61B02362500B2BBB1 /* CoreStore+Setup.swift in Sources */,
B529C2041CA4A2DB007E7EBD /* CSSaveResult.swift in Sources */,
B5D1E22C19FA9FBC003B2874 /* CoreStoreError.swift in Sources */,
B5E84F131AFF847B0064E85B /* Where.swift in Sources */,
B5D339D81E9489AB00C880DE /* CoreStoreObject.swift in Sources */,
B5D3F6451C887C0A00C7492A /* LegacySQLiteStore.swift in Sources */,
B56923FA1EB82956007C4DC9 /* CSXcodeDataModelSchema.swift in Sources */,
B55514EA1EED8BF900BAB888 /* From+Querying.swift in Sources */,
B596BBBB1DD5C39F001DCDD9 /* QueryableSource.swift in Sources */,
@@ -1933,7 +1910,6 @@
B56923F01EB827F6007C4DC9 /* XcodeSchemaMappingProvider.swift in Sources */,
B5E84F121AFF847B0064E85B /* OrderBy.swift in Sources */,
B546F9581C99B17400D5AC55 /* CSCoreStore+Setup.swift in Sources */,
B5677D3D1CD3B1E400322BFC /* ICloudStoreObserver.swift in Sources */,
B5E84F361AFF85470064E85B /* NSManagedObjectContext+Setup.swift in Sources */,
B5FAD6AE1B518DCB00714891 /* CoreStore+Migration.swift in Sources */,
B5E84EE71AFF84610064E85B /* CoreStore+Logging.swift in Sources */,
@@ -1983,7 +1959,6 @@
B5519A4A1CA1F4FB002BEF78 /* CSError.swift in Sources */,
B52F742F1E9B50D0005F3DAC /* SchemaHistory.swift in Sources */,
B5E84EF51AFF846E0064E85B /* BaseDataTransaction.swift in Sources */,
B5E84EFB1AFF846E0064E85B /* SaveResult.swift in Sources */,
B5D339EC1E9495E500C880DE /* CoreStoreObject+Querying.swift in Sources */,
B5E84F0F1AFF847B0064E85B /* From.swift in Sources */,
B5FAD6A91B50A4B400714891 /* Progress+Convenience.swift in Sources */,
@@ -2012,7 +1987,6 @@
B501FDDD1CA8D05000BE22EF /* CSSectionBy.swift in Sources */,
B538BA771D15B3E30003A766 /* CoreStoreBridge.m in Sources */,
B512607F1E97A18000402229 /* CoreStoreObject+Convenience.swift in Sources */,
B59FA0AE1CCBAC95007C9BCA /* ICloudStore.swift in Sources */,
B5E84EF81AFF846E0064E85B /* CoreStore+Transaction.swift in Sources */,
B5E84F301AFF849C0064E85B /* NSManagedObjectContext+CoreStore.swift in Sources */,
B5831B7A1F34ACBA00A9F647 /* Transformable.swift in Sources */,
@@ -2026,6 +2000,7 @@
B5FE4DA71C84FB4400FA6A91 /* InMemoryStore.swift in Sources */,
B52F743D1E9B8724005F3DAC /* DynamicSchema.swift in Sources */,
B5E8A72021C1015300EF006A /* CoreStoreObject+Observing.swift in Sources */,
B5474D152227C08700B21FEC /* CoreStoreFetchRequest.swift in Sources */,
B56923FF1EB82976007C4DC9 /* CSUnsafeDataModelSchema.swift in Sources */,
B5215CAE1FA4812500139E3A /* SectionMonitorBuilder.swift in Sources */,
B5ECDBEC1CA6BF2000C7F112 /* CSFrom.swift in Sources */,
@@ -2089,7 +2064,6 @@
82BA18A21C4BBD1D00A0916E /* CoreStoreError.swift in Sources */,
B512608A1E9B252B00402229 /* NSEntityDescription+DynamicModel.swift in Sources */,
82BA18B21C4BBD3900A0916E /* ImportableObject.swift in Sources */,
B529C2061CA4A2DB007E7EBD /* CSSaveResult.swift in Sources */,
82BA18AE1C4BBD3100A0916E /* DataStack+Transaction.swift in Sources */,
82BA18AB1C4BBD3100A0916E /* AsynchronousDataTransaction.swift in Sources */,
B5D339D91E9489AB00C880DE /* CoreStoreObject.swift in Sources */,
@@ -2119,7 +2093,6 @@
B5831B761F34AC7A00A9F647 /* RelationshipProtocol.swift in Sources */,
B5E1B5AA1CAA49E2007FD580 /* CSDataStack+Migrating.swift in Sources */,
B5D339F21E94AF5800C880DE /* CoreStoreStrings.swift in Sources */,
B5D3F6461C887C0A00C7492A /* LegacySQLiteStore.swift in Sources */,
B5E1B59F1CAA2568007FD580 /* CSDataStack+Observing.swift in Sources */,
B5ECDC251CA81A3900C7F112 /* CSCoreStore+Querying.swift in Sources */,
B549F6741E56A92800FBAB2D /* CoreDataNativeType.swift in Sources */,
@@ -2130,14 +2103,12 @@
B56923F11EB827F6007C4DC9 /* XcodeSchemaMappingProvider.swift in Sources */,
82BA18A11C4BBD1D00A0916E /* CoreStore.swift in Sources */,
B546F9591C99B17400D5AC55 /* CSCoreStore+Setup.swift in Sources */,
B5677D3F1CD3B1E400322BFC /* ICloudStoreObserver.swift in Sources */,
82BA18CF1C4BBD7100A0916E /* Functions.swift in Sources */,
82BA18A31C4BBD2200A0916E /* DataStack.swift in Sources */,
82BA18C81C4BBD5900A0916E /* MigrationChain.swift in Sources */,
B546F9741C9C553300D5AC55 /* SetupResult.swift in Sources */,
B5831F4022126FEC00D8604C /* KeyPathGenericBindings.swift in Sources */,
B53CA9A31EF1EF1600E0F440 /* PartialObject.swift in Sources */,
82BA18B11C4BBD3100A0916E /* SaveResult.swift in Sources */,
82BA18DD1C4BBE1400A0916E /* NSFetchedResultsController+Convenience.swift in Sources */,
B5831F432212700400D8604C /* Where.Expression.swift in Sources */,
B51260941E9B28F100402229 /* EntityIdentifier.swift in Sources */,
@@ -2207,7 +2178,6 @@
82BA18CB1C4BBD6400A0916E /* NSManagedObject+Convenience.swift in Sources */,
82BA18B51C4BBD3F00A0916E /* BaseDataTransaction+Querying.swift in Sources */,
B501FDDF1CA8D05000BE22EF /* CSSectionBy.swift in Sources */,
B59FA0B01CCBACA7007C9BCA /* ICloudStore.swift in Sources */,
B538BA781D15B3E30003A766 /* CoreStoreBridge.m in Sources */,
B51260801E97A18000402229 /* CoreStoreObject+Convenience.swift in Sources */,
82BA18D31C4BBD7100A0916E /* NSManagedObjectContext+CoreStore.swift in Sources */,
@@ -2224,6 +2194,7 @@
B5ECDBEE1CA6BF2000C7F112 /* CSFrom.swift in Sources */,
B52F743E1E9B8724005F3DAC /* DynamicSchema.swift in Sources */,
B5E8A72121C1015300EF006A /* CoreStoreObject+Observing.swift in Sources */,
B5474D162227C08700B21FEC /* CoreStoreFetchRequest.swift in Sources */,
B56924001EB82976007C4DC9 /* CSUnsafeDataModelSchema.swift in Sources */,
B5215CAF1FA4812500139E3A /* SectionMonitorBuilder.swift in Sources */,
82BA18D61C4BBD7100A0916E /* NSManagedObjectContext+Transaction.swift in Sources */,
@@ -2282,7 +2253,6 @@
B5220E1E1D13080D009BC71E /* CSListMonitor.swift in Sources */,
B5DBE2D01C9914A900B5CEFA /* CSCoreStore.swift in Sources */,
B5CA2B0B1F7E5ACA004B1936 /* WhereClauseType.swift in Sources */,
B5677D411CD3B1E400322BFC /* ICloudStoreObserver.swift in Sources */,
B56923F81EB828BF007C4DC9 /* CSDynamicSchema.swift in Sources */,
B52DD1BE1BE1F94300949AFE /* Progress+Convenience.swift in Sources */,
B512608C1E9B252B00402229 /* NSEntityDescription+DynamicModel.swift in Sources */,
@@ -2311,7 +2281,6 @@
B52DD1AB1BE1F93900949AFE /* From.swift in Sources */,
B546F95B1C99B17400D5AC55 /* CSCoreStore+Setup.swift in Sources */,
B52DD1A11BE1F92C00949AFE /* DataStack+Transaction.swift in Sources */,
B5D3F6481C887C0A00C7492A /* LegacySQLiteStore.swift in Sources */,
B5220E1C1D130801009BC71E /* FetchedResultsControllerDelegate.swift in Sources */,
B52DD19E1BE1F92C00949AFE /* AsynchronousDataTransaction.swift in Sources */,
B5831B781F34AC7A00A9F647 /* RelationshipProtocol.swift in Sources */,
@@ -2366,7 +2335,6 @@
B52DD19C1BE1F92C00949AFE /* Into.swift in Sources */,
B5FE4DA51C8481E100FA6A91 /* StorageInterface.swift in Sources */,
B596BBB91DD5BC67001DCDD9 /* FetchableSource.swift in Sources */,
B529C2081CA4A2DC007E7EBD /* CSSaveResult.swift in Sources */,
B5FE4DAA1C84FB4400FA6A91 /* InMemoryStore.swift in Sources */,
B52DD1AF1BE1F93900949AFE /* GroupBy.swift in Sources */,
B52DD1B01BE1F93900949AFE /* Tweak.swift in Sources */,
@@ -2377,7 +2345,6 @@
B52DD1BA1BE1F94000949AFE /* MigrationChain.swift in Sources */,
B50392FB1C479640009900CA /* NSManagedObject+Transaction.swift in Sources */,
B52F74321E9B50D0005F3DAC /* SchemaHistory.swift in Sources */,
B52DD1A31BE1F92C00949AFE /* SaveResult.swift in Sources */,
B5220E211D130816009BC71E /* CSObjectObserver.swift in Sources */,
B5D339EF1E9495E500C880DE /* CoreStoreObject+Querying.swift in Sources */,
B52DD19F1BE1F92C00949AFE /* SynchronousDataTransaction.swift in Sources */,
@@ -2387,7 +2354,6 @@
B5215CAC1FA4810300139E3A /* QueryChainBuilder.swift in Sources */,
B53FBA0F1CAB5E6500F0D40A /* CSCoreStore+Migrating.swift in Sources */,
B52F744D1E9B8740005F3DAC /* CoreStoreSchema.swift in Sources */,
B59FA0B21CCBACA8007C9BCA /* ICloudStore.swift in Sources */,
B52DD19A1BE1F92800949AFE /* CoreStore+Logging.swift in Sources */,
B52DD1A71BE1F93200949AFE /* BaseDataTransaction+Querying.swift in Sources */,
B546F96C1C9AF26D00D5AC55 /* CSInMemoryStore.swift in Sources */,
@@ -2422,6 +2388,7 @@
B5220E201D130813009BC71E /* CSObjectMonitor.swift in Sources */,
B52F74401E9B8724005F3DAC /* DynamicSchema.swift in Sources */,
B5E8A72321C1015300EF006A /* CoreStoreObject+Observing.swift in Sources */,
B5474D182227C08700B21FEC /* CoreStoreFetchRequest.swift in Sources */,
B56924021EB82976007C4DC9 /* CSUnsafeDataModelSchema.swift in Sources */,
B5215CB11FA4812500139E3A /* SectionMonitorBuilder.swift in Sources */,
B5220E171D1306DF009BC71E /* UnsafeDataTransaction+Observing.swift in Sources */,
@@ -2485,7 +2452,6 @@
B56321801BD65216006C9394 /* CoreStoreError.swift in Sources */,
B512608B1E9B252B00402229 /* NSEntityDescription+DynamicModel.swift in Sources */,
B56321AD1BD6521C006C9394 /* MigrationManager.swift in Sources */,
B529C2071CA4A2DC007E7EBD /* CSSaveResult.swift in Sources */,
B563219D1BD65216006C9394 /* DataStack+Observing.swift in Sources */,
B56321961BD65216006C9394 /* From.swift in Sources */,
B5D339DA1E9489AB00C880DE /* CoreStoreObject.swift in Sources */,
@@ -2513,7 +2479,6 @@
B53FBA151CAB63CB00F0D40A /* Progress+ObjectiveC.swift in Sources */,
B5E1B5AB1CAA49E2007FD580 /* CSDataStack+Migrating.swift in Sources */,
B5831B771F34AC7A00A9F647 /* RelationshipProtocol.swift in Sources */,
B5D3F6471C887C0A00C7492A /* LegacySQLiteStore.swift in Sources */,
B5D339F31E94AF5800C880DE /* CoreStoreStrings.swift in Sources */,
B5E1B5A01CAA2568007FD580 /* CSDataStack+Observing.swift in Sources */,
B5ECDC261CA81A3900C7F112 /* CSCoreStore+Querying.swift in Sources */,
@@ -2525,7 +2490,6 @@
B56321911BD65216006C9394 /* BaseDataTransaction+Importing.swift in Sources */,
B56923F21EB827F6007C4DC9 /* XcodeSchemaMappingProvider.swift in Sources */,
B546F95A1C99B17400D5AC55 /* CSCoreStore+Setup.swift in Sources */,
B5677D401CD3B1E400322BFC /* ICloudStoreObserver.swift in Sources */,
B56321941BD65216006C9394 /* CoreStore+Querying.swift in Sources */,
B56321811BD65216006C9394 /* DataStack.swift in Sources */,
B56321A81BD65219006C9394 /* NSManagedObject+Convenience.swift in Sources */,
@@ -2579,7 +2543,6 @@
B56321991BD65216006C9394 /* OrderBy.swift in Sources */,
B5D339EE1E9495E500C880DE /* CoreStoreObject+Querying.swift in Sources */,
B56321A51BD65216006C9394 /* MigrationChain.swift in Sources */,
B563218E1BD65216006C9394 /* SaveResult.swift in Sources */,
B5E222261CA4E12600BA2E95 /* CSSynchronousDataTransaction.swift in Sources */,
B56321A21BD65216006C9394 /* ListObserver.swift in Sources */,
B5215CAB1FA4810300139E3A /* QueryChainBuilder.swift in Sources */,
@@ -2603,7 +2566,6 @@
B56321851BD65216006C9394 /* CoreStore+Logging.swift in Sources */,
B56321921BD65216006C9394 /* BaseDataTransaction+Querying.swift in Sources */,
B501FDE01CA8D05000BE22EF /* CSSectionBy.swift in Sources */,
B59FA0B11CCBACA7007C9BCA /* ICloudStore.swift in Sources */,
B538BA791D15B3E30003A766 /* CoreStoreBridge.m in Sources */,
B51260811E97A18000402229 /* CoreStoreObject+Convenience.swift in Sources */,
B56321B11BD6521C006C9394 /* NSManagedObjectContext+CoreStore.swift in Sources */,
@@ -2620,6 +2582,7 @@
B5ECDBEF1CA6BF2000C7F112 /* CSFrom.swift in Sources */,
B52F743F1E9B8724005F3DAC /* DynamicSchema.swift in Sources */,
B5E8A72221C1015300EF006A /* CoreStoreObject+Observing.swift in Sources */,
B5474D172227C08700B21FEC /* CoreStoreFetchRequest.swift in Sources */,
B56924011EB82976007C4DC9 /* CSUnsafeDataModelSchema.swift in Sources */,
B5215CB01FA4812500139E3A /* SectionMonitorBuilder.swift in Sources */,
B56321B41BD6521C006C9394 /* NSManagedObjectContext+Transaction.swift in Sources */,
@@ -2664,6 +2627,7 @@
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@@ -2719,7 +2683,7 @@
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
SWIFT_VERSION = 4.2;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TVOS_DEPLOYMENT_TARGET = 10.0;
VERSIONING_SYSTEM = "apple-generic";
@@ -2733,6 +2697,7 @@
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
APPLICATION_EXTENSION_API_ONLY = YES;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
@@ -2781,7 +2746,7 @@
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
SWIFT_VERSION = 4.2;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TVOS_DEPLOYMENT_TARGET = 10.0;
VALIDATE_PRODUCT = YES;

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0930"
LastUpgradeVersion = "1020"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0930"
LastUpgradeVersion = "1020"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0930"
LastUpgradeVersion = "1020"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0930"
LastUpgradeVersion = "1020"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View File

@@ -276,7 +276,7 @@
};
buildConfigurationList = B54AAD441AF4D26E00848AE0 /* Build configuration list for PBXProject "CoreStoreDemo" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
@@ -416,7 +416,7 @@
SDKROOT = iphoneos;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
SWIFT_VERSION = 4.0;
SWIFT_VERSION = 5.0;
};
name = Debug;
};
@@ -464,7 +464,7 @@
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
SWIFT_VERSION = 4.0;
SWIFT_VERSION = 5.0;
VALIDATE_PRODUCT = YES;
};
name = Release;
@@ -478,7 +478,6 @@
PRODUCT_BUNDLE_IDENTIFIER = com.johnestropia.corestore.demo;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
SWIFT_VERSION = 4.0;
};
name = Debug;
};
@@ -492,7 +491,6 @@
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
SWIFT_SWIFT3_OBJC_INFERENCE = Off;
SWIFT_VERSION = 4.0;
};
name = Release;
};

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0930"
LastUpgradeVersion = "1020"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View File

@@ -18,7 +18,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]? = nil) -> Bool {
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil) -> Bool {
return true
}

View File

@@ -30,7 +30,7 @@ class FetchingResultsViewController: UITableViewController {
super.viewDidLoad()
self.tableView.estimatedRowHeight = 60
self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.rowHeight = UITableView.automaticDimension
}

View File

@@ -49,7 +49,7 @@ class QueryingResultsViewController: UITableViewController {
super.viewDidLoad()
self.tableView.estimatedRowHeight = 60
self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.rowHeight = UITableView.automaticDimension
}

View File

@@ -90,8 +90,9 @@
"scale" : "2x"
},
{
"idiom" : "ios-marketing",
"size" : "1024x1024",
"idiom" : "ios-marketing",
"filename" : "Mask + Oval 1 + Oval 1 + Oval 1.png",
"scale" : "1x"
},
{

Binary file not shown.

After

Width:  |  Height:  |  Size: 118 KiB

View File

@@ -17,7 +17,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>6.0.0</string>
<string>6.3.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>

View File

@@ -187,7 +187,7 @@ class ListObserverDemoViewController: UITableViewController, ListSectionObserver
)
}
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
switch editingStyle {
@@ -313,6 +313,7 @@ class ListObserverDemoViewController: UITableViewController, ListSectionObserver
@IBAction private dynamic func shuffleBarButtonItemTouched(_ sender: AnyObject?) {
self.setTable(enabled: false)
ColorsDemo.stack.perform(
asynchronous: { (transaction) in
@@ -322,12 +323,16 @@ class ListObserverDemoViewController: UITableViewController, ListSectionObserver
palette.colorName .= nil
}
},
completion: { _ in }
completion: { _ in
self.setTable(enabled: true)
}
)
}
private func setTable(enabled: Bool) {
tableView.isUserInteractionEnabled = enabled
UIView.animate(
withDuration: 0.2,
delay: 0,
@@ -337,7 +342,6 @@ class ListObserverDemoViewController: UITableViewController, ListSectionObserver
if let tableView = self.tableView {
tableView.alpha = enabled ? 1.0 : 0.5
tableView.isUserInteractionEnabled = enabled
}
},
completion: nil

View File

@@ -360,7 +360,7 @@ class MigrationsDemoViewController: UIViewController, ListObserver, UITableViewD
if let dataStack = dataStack, let model = model {
self.segmentedControl?.selectedSegmentIndex = self.models
.index(
.firstIndex(
where: { (arg) -> Bool in
let (_, _, schemaHistory) = arg
@@ -386,7 +386,7 @@ class MigrationsDemoViewController: UIViewController, ListObserver, UITableViewD
}
else {
self.segmentedControl?.selectedSegmentIndex = UISegmentedControlNoSegment
self.segmentedControl?.selectedSegmentIndex = UISegmentedControl.noSegment
self._listMonitor = nil
self._dataStack = nil
}

View File

@@ -141,10 +141,8 @@ class DynamicModelTests: BaseTestDataTestCase {
let k1 = String(keyPath: \Animal.species)
XCTAssertEqual(k1, "species")
#if swift(<5.0)
let k2 = String(keyPath: \Dog.species)
XCTAssertEqual(k2, "species")
#endif
let k3 = String(keyPath: \Dog.nickname)
XCTAssertEqual(k3, "nickname")
@@ -325,9 +323,7 @@ class DynamicModelTests: BaseTestDataTestCase {
dynamic func test_ThatDynamicModelKeyPaths_CanBeCreated() {
XCTAssertEqual(String(keyPath: \Animal.species), "species")
#if swift(<5.0)
XCTAssertEqual(String(keyPath: \Dog.species), "species")
#endif
}
@nonobjc

View File

@@ -74,31 +74,31 @@ final class FromTests: BaseTestCase {
let from = From<TestEntity1>()
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
try from.applyToFetchRequest(request, context: dataStack.mainContext)
XCTAssertNotNil(request.entity)
XCTAssertNotNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertEqual(affectedConfigurations, ["PF_DEFAULT_CONFIGURATION_NAME"])
}
do {
let from = From<TestEntity1>("Config1")
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
self.expectError(code: .persistentStoreNotFound) {
try from.applyToFetchRequest(request, context: dataStack.mainContext)
}
XCTAssertNotNil(request.entity)
XCTAssertNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertTrue(affectedConfigurations.isEmpty)
}
}
@@ -113,98 +113,98 @@ final class FromTests: BaseTestCase {
let from = From<TestEntity1>()
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
let storesFound: Void? = try? from.applyToFetchRequest(request, context: dataStack.mainContext)
XCTAssertNotNil(storesFound)
XCTAssertNotNil(request.entity)
XCTAssertNotNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertEqual(affectedConfigurations, ["Config1"])
}
do {
let from = From<TestEntity1>("Config1")
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
let storesFound: Void? = try? from.applyToFetchRequest(request, context: dataStack.mainContext)
XCTAssertNotNil(storesFound)
XCTAssertNotNil(request.entity)
XCTAssertNotNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertEqual(affectedConfigurations, ["Config1"])
}
do {
let from = From<TestEntity1>("Config2")
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
self.expectError(code: .persistentStoreNotFound) {
try from.applyToFetchRequest(request, context: dataStack.mainContext)
}
XCTAssertNotNil(request.entity)
XCTAssertNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertTrue(affectedConfigurations.isEmpty)
}
do {
let from = From<TestEntity2>()
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
self.expectError(code: .persistentStoreNotFound) {
try from.applyToFetchRequest(request, context: dataStack.mainContext)
}
XCTAssertNotNil(request.entity)
XCTAssertNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertTrue(affectedConfigurations.isEmpty)
}
do {
let from = From<TestEntity2>("Config1")
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
self.expectError(code: .persistentStoreNotFound) {
try from.applyToFetchRequest(request, context: dataStack.mainContext)
}
XCTAssertNotNil(request.entity)
XCTAssertNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertTrue(affectedConfigurations.isEmpty)
}
do {
let from = From<TestEntity2>("Config2")
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
self.expectError(code: .persistentStoreNotFound) {
try from.applyToFetchRequest(request, context: dataStack.mainContext)
}
XCTAssertNotNil(request.entity)
XCTAssertNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertTrue(affectedConfigurations.isEmpty)
}
}
@@ -219,96 +219,96 @@ final class FromTests: BaseTestCase {
let from = From<TestEntity1>()
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
let storesFound: Void? = try? from.applyToFetchRequest(request, context: dataStack.mainContext)
XCTAssertNotNil(storesFound)
XCTAssertNotNil(request.entity)
XCTAssertNotNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertEqual(Set(affectedConfigurations), ["PF_DEFAULT_CONFIGURATION_NAME", "Config1"] as Set)
}
do {
let from = From<TestEntity1>("Config1")
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
let storesFound: Void? = try? from.applyToFetchRequest(request, context: dataStack.mainContext)
XCTAssertNotNil(storesFound)
XCTAssertNotNil(request.entity)
XCTAssertNotNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertEqual(affectedConfigurations, ["Config1"])
}
do {
let from = From<TestEntity1>("Config2")
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
self.expectError(code: .persistentStoreNotFound) {
try from.applyToFetchRequest(request, context: dataStack.mainContext)
}
XCTAssertNotNil(request.entity)
XCTAssertNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertTrue(affectedConfigurations.isEmpty)
}
do {
let from = From<TestEntity2>()
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
let storesFound: Void? = try? from.applyToFetchRequest(request, context: dataStack.mainContext)
XCTAssertNotNil(storesFound)
XCTAssertNotNil(request.entity)
XCTAssertNotNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertEqual(affectedConfigurations, ["PF_DEFAULT_CONFIGURATION_NAME"])
}
do {
let from = From<TestEntity2>("Config1")
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
self.expectError(code: .persistentStoreNotFound) {
try from.applyToFetchRequest(request, context: dataStack.mainContext)
}
XCTAssertNotNil(request.entity)
XCTAssertNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertTrue(affectedConfigurations.isEmpty)
}
do {
let from = From<TestEntity2>("Config2")
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
self.expectError(code: .persistentStoreNotFound) {
try from.applyToFetchRequest(request, context: dataStack.mainContext)
}
XCTAssertNotNil(request.entity)
XCTAssertNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertTrue(affectedConfigurations.isEmpty)
}
}
@@ -323,94 +323,94 @@ final class FromTests: BaseTestCase {
let from = From<TestEntity1>()
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
let storesFound: Void? = try? from.applyToFetchRequest(request, context: dataStack.mainContext)
XCTAssertNotNil(storesFound)
XCTAssertNotNil(request.entity)
XCTAssertNotNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertEqual(affectedConfigurations, ["Config1"])
}
do {
let from = From<TestEntity1>("Config1")
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
let storesFound: Void? = try? from.applyToFetchRequest(request, context: dataStack.mainContext)
XCTAssertNotNil(storesFound)
XCTAssertNotNil(request.entity)
XCTAssertNotNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertEqual(affectedConfigurations, ["Config1"])
}
do {
let from = From<TestEntity1>("Config2")
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
self.expectError(code: .persistentStoreNotFound) {
try from.applyToFetchRequest(request, context: dataStack.mainContext)
}
XCTAssertNotNil(request.entity)
XCTAssertNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertTrue(affectedConfigurations.isEmpty)
}
do {
let from = From<TestEntity2>()
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
let storesFound: Void? = try? from.applyToFetchRequest(request, context: dataStack.mainContext)
XCTAssertNotNil(storesFound)
XCTAssertNotNil(request.entity)
XCTAssertNotNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertEqual(affectedConfigurations, ["Config2"])
}
do {
let from = From<TestEntity2>("Config1")
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
self.expectError(code: .persistentStoreNotFound) {
try from.applyToFetchRequest(request, context: dataStack.mainContext)
}
XCTAssertNotNil(request.entity)
XCTAssertNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertTrue(affectedConfigurations.isEmpty)
}
do {
let from = From<TestEntity2>("Config2")
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
let storesFound: Void? = try? from.applyToFetchRequest(request, context: dataStack.mainContext)
XCTAssertNotNil(storesFound)
XCTAssertNotNil(request.entity)
XCTAssertNotNil(request.affectedStores)
XCTAssertNotNil(request.safeAffectedStores())
XCTAssert(from.entityClass == NSClassFromString(request.entity!.managedObjectClassName))
let affectedConfigurations = request.affectedStores?.map { $0.configurationName } ?? []
let affectedConfigurations = request.safeAffectedStores()?.map { $0.configurationName } ?? []
XCTAssertEqual(affectedConfigurations, ["Config2"])
}
}

View File

@@ -68,7 +68,7 @@ final class GroupByTests: BaseTestCase {
let groupBy = GroupBy<NSManagedObject>(#keyPath(TestEntity1.testString))
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
try From<TestEntity1>().applyToFetchRequest(request, context: dataStack.mainContext)
groupBy.applyToFetchRequest(request)

View File

@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>6.0.0</string>
<string>6.2.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>

View File

@@ -179,7 +179,7 @@ final class OrderByTests: XCTestCase {
dynamic func test_ThatOrderByClauses_ApplyToFetchRequestsCorrectly() {
let orderBy = OrderBy<NSManagedObject>(.ascending("key"))
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
orderBy.applyToFetchRequest(request)
XCTAssertNotNil(request.sortDescriptors)
XCTAssertEqual(request.sortDescriptors ?? [], orderBy.sortDescriptors)

View File

@@ -43,7 +43,7 @@ final class TweakTests: XCTestCase {
$0.fetchLimit = 200
$0.predicate = predicate
}
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
tweak.applyToFetchRequest(request)
XCTAssertEqual(request.fetchOffset, 100)
XCTAssertEqual(request.fetchLimit, 200)

View File

@@ -583,7 +583,7 @@ final class WhereTests: XCTestCase {
dynamic func test_ThatWhereClauses_ApplyToFetchRequestsCorrectly() {
let whereClause = Where<NSManagedObject>("key", isEqualTo: "value")
let request = NSFetchRequest<NSFetchRequestResult>()
let request = CoreStoreFetchRequest<NSFetchRequestResult>()
whereClause.applyToFetchRequest(request)
XCTAssertNotNil(request.predicate)
XCTAssertEqual(request.predicate, whereClause.predicate)

View File

@@ -1,53 +0,0 @@
import UIKit
import CoreStore
/// Model Declaration =====
class Animal: CoreStoreObject {
let species = Value.Required<String>("species", initial: "Swift")
let master = Relationship.ToOne<Person>("master")
let color = Transformable.Optional<UIColor>("color", initial: .orange)
}
class Person: CoreStoreObject {
let name = Value.Optional<String>("name")
let pets = Relationship.ToManyUnordered<Animal>("pets", inverse: { $0.master })
}
/// =======================
/// Stack setup ===========
let dataStack = DataStack(
CoreStoreSchema(
modelVersion: "V1",
entities: [
Entity<Animal>("Animal"),
Entity<Person>("Person")
]
)
)
try dataStack.addStorageAndWait(SQLiteStore(fileName: "data.sqlite"))
/// =======================
/// Transactions ==========
dataStack.perform(synchronous: { transaction in
let animal = transaction.create(Into<Animal>())
animal.species .= "Sparrow"
animal.color .= .yellow
let person = transaction.create(Into<Person>())
person.name .= "John"
person.pets.value.insert(animal)
})
/// =======================
/// Accessing Objects =====
let bird = dataStack.fetchOne(From<Animal>().where(\.species == "Sparrow"))!
bird.species.value
bird.color.value
print(bird)
let owner = bird.master.value!
owner.name.value
owner.pets.count
print(owner)
/// =======================

View File

@@ -0,0 +1,79 @@
import UIKit
import CoreStore
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
/// Model Declaration =====
class Animal: CoreStoreObject {
let species = Value.Required<String>("species", initial: "Swift")
let master = Relationship.ToOne<Person>("master")
let color = Transformable.Optional<UIColor>("color", initial: .orange)
}
class Person: CoreStoreObject {
let name = Value.Optional<String>("name")
let pets = Relationship.ToManyUnordered<Animal>("pets", inverse: { $0.master })
}
/// =======================
/// Stack setup ===========
let dataStack = DataStack(
CoreStoreSchema(
modelVersion: "V1",
entities: [
Entity<Animal>("Animal"),
Entity<Person>("Person")
]
)
)
dataStack.addStorage(
SQLiteStore(fileName: "data.sqlite"),
completion: { result in
switch result {
case .failure(let error):
print(error)
case .success:
/// Transactions ==========
dataStack.perform(
asynchronous: { transaction in
let animal = transaction.create(Into<Animal>())
animal.species .= "Sparrow"
animal.color .= .yellow
let person = transaction.create(Into<Person>())
person.name .= "John"
person.pets.value.insert(animal)
},
completion: { result in
switch result {
case .failure(let error):
print(error)
case .success:
/// Accessing Objects =====
let bird = try! dataStack.fetchOne(From<Animal>().where(\.species == "Sparrow"))!
print(bird.species.value)
print(bird.color.value as Any)
print(bird)
let owner = bird.master.value!
print(owner.name.value as Any)
print(owner.pets.count)
print(owner)
/// =======================
}
}
)
/// =======================
}
}
)

View File

@@ -0,0 +1,77 @@
import AppKit
import CoreStore
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
/// Model Declaration =====
class Animal: CoreStoreObject {
let species = Value.Required<String>("species", initial: "Swift")
let master = Relationship.ToOne<Person>("master")
let color = Transformable.Optional<NSColor>("color", initial: .orange)
}
class Person: CoreStoreObject {
let name = Value.Optional<String>("name")
let pets = Relationship.ToManyUnordered<Animal>("pets", inverse: { $0.master })
}
/// =======================
/// Stack setup ===========
let dataStack = DataStack(
CoreStoreSchema(
modelVersion: "V1",
entities: [
Entity<Animal>("Animal"),
Entity<Person>("Person")
]
)
)
dataStack.addStorage(
SQLiteStore(fileName: "data.sqlite"),
completion: { result in
switch result {
case .failure(let error):
print(error)
case .success:
/// Transactions ==========
dataStack.perform(
asynchronous: { transaction in
let animal = transaction.create(Into<Animal>())
animal.species .= "Sparrow"
animal.color .= .yellow
let person = transaction.create(Into<Person>())
person.name .= "John"
person.pets.value.insert(animal)
},
completion: { result in
switch result {
case .failure(let error):
print(error)
case .success:
/// Accessing Objects =====
let bird = try! dataStack.fetchOne(From<Animal>().where(\.species == "Sparrow"))!
print(bird.species.value)
print(bird.color.value as Any)
print(bird)
let owner = bird.master.value!
print(owner.name.value as Any)
print(owner.pets.count)
print(owner)
/// =======================
}
}
)
/// =======================
}
}
)

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<playground version='5.0' target-platform='macos' executeOnSourceChanges='false'>
<timeline fileName='timeline.xctimeline'/>
</playground>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@@ -19,8 +19,8 @@ Unleashing the real power of Core Data with the elegance and safety of Swift
<br />
</p>
* **Swift 4.2:** iOS 10+ / macOS 10.12+ / watchOS 3.0+ / tvOS 10.0+
* Other Swift versions: [Swift 3.2(version 4.2.3)](https://github.com/JohnEstropia/CoreStore/tree/4.2.3)
* **Swift 5.0:** iOS 10+ / macOS 10.12+ / watchOS 3.0+ / tvOS 10.0+
* Previously supported Swift versions: [Swift 3.2](https://github.com/JohnEstropia/CoreStore/tree/4.2.3), [Swift 4.2](https://github.com/JohnEstropia/CoreStore/tree/6.2.1)
Upgrading from CoreStore 5.x (min iOS 9) to 6.x (min iOS 10)? Check out the [new features](#features) and make sure to read the [Change logs](https://github.com/JohnEstropia/CoreStore/releases).
@@ -59,7 +59,6 @@ CoreStore was (and is) heavily shaped by real-world needs of developing data-dep
- [Setting up](#setting-up)
- [In-memory store](#in-memory-store)
- [Local store](#local-store)
- [iCloud store](#icloud-store)
- [Migrations](#migrations)
- [Declaring model versions](#declaring-model-versions)
- [Starting migrations](#starting-migrations)
@@ -313,66 +312,6 @@ public protocol LocalStorage: StorageInterface {
```
If you have custom `NSIncrementalStore` or `NSAtomicStore` subclasses, you can implement this protocol and use it similarly to `SQLiteStore`.
### iCloud Store
> ⚠️**Important:** The iCloud Store is being deprecated. Please use with caution. If you have any concerns please do send me a message on [Twitter](https://twitter.com/JohnEstropia) or on the [CoreStore Slack Team](http://swift-corestore-slack.herokuapp.com/)
As a counterpart to `LocalStorage`, the `CloudStorage` protocol abstracts stores managed in the cloud. CoreStore currently provides the concrete class `ICloudStore`. Unlike `InMemoryStore` and `SQLiteStore` though, the `ICloudStore`'s initializer may return `nil` if the iCloud container could not be located or if iCloud is not available on the device:
```swift
guard let storage = ICloudStore(
ubiquitousContentName: "MyAppCloudData", // the name of the store in iCloud
ubiquitousContentTransactionLogsSubdirectory: "logs/config1", // optional. Subdirectory path for the transaction logs
ubiquitousContainerID: "iCloud.com.mycompany.myapp.containername", // optional. The container if your app has multiple ubiquity container identifiers in its entitlements
ubiquitousPeerToken: "9614d658014f4151a95d8048fb717cf0", // optional. A per-application salt to allow multiple apps on the same device to share a Core Data store integrated with iCloud
configuration: "Config1", // optional. Use entities from the "Config1" configuration in the .xcdatamodeld file
cloudStorageOptions: .recreateLocalStoreOnModelMismatch // optional. Provides settings that tells the DataStack how to setup the persistent store
) else {
// The iCloud container could not be located or if iCloud is not available on the device.
// Handle appropriately
return
}
CoreStore.addStorage(,
storage,
completion: { result in
switch result {
case .success(let storage): // ...
case .failure(let error): // ...
}
}
)
```
If your app is using iCloud stores, you may want to be notified of particular iCloud events. The `ICloudStoreObserver` functions are all optional, so you may implement only the ones your app is interested in:
```swift
public protocol ICloudStoreObserver: class {
func iCloudStoreWillFinishUbiquitousStoreInitialImport(storage storage: ICloudStore, dataStack: DataStack)
func iCloudStoreDidFinishUbiquitousStoreInitialImport(storage storage: ICloudStore, dataStack: DataStack)
func iCloudStoreWillAddAccount(storage storage: ICloudStore, dataStack: DataStack)
func iCloudStoreDidAddAccount(storage storage: ICloudStore, dataStack: DataStack)
func iCloudStoreWillRemoveAccount(storage storage: ICloudStore, dataStack: DataStack)
func iCloudStoreDidRemoveAccount(storage storage: ICloudStore, dataStack: DataStack)
func iCloudStoreWillRemoveContent(storage storage: ICloudStore, dataStack: DataStack)
func iCloudStoreDidRemoveContent(storage storage: ICloudStore, dataStack: DataStack)
}
```
To register your `ICloudStoreObserver`, call `addObserver(_:)` on the `ICloudStore` instance:
```swift
guard let storage = ICloudStore(/* ... */) else {
return
}
storage.addObserver(self) // assuming self implements ICloudStoreObserver
CoreStore.addStorage(,
storage,
completion: { result in
switch result {
case .success(let storage): // ... You may also call storage.addObserver(_:) here
case .failure(let error): // ...
}
}
)
```
The `ICloudStore` only keeps weak references of the registered observers. You may call `removeObserver(_:)` for precise deregistration, but `ICloudStore` automatically removes deallocated observers.
## Migrations
@@ -1675,14 +1614,13 @@ CoreStore.perform(
<td><pre lang=objc>
[CSCoreStore beginAsynchronous:^(CSAsynchronousDataTransaction *transaction) {
// ...
[transaction commitWithCompletion:^(CSSaveResult *result) {
if (result.isSuccess) {
NSLog(@"Done");
}
else if (result.isFailure) {
NSLog(@"error: %@", result.error);
}
}];
[transaction
commitWithSuccess:^{
NSLog(@"Done");
}
failure: ^(CSError *error) {
NSLog(@"error: %@", result.error);
}];
}];
</pre></td>
</tr>
@@ -1863,7 +1801,8 @@ Once the version lock is set, any changes in the properties or to the model will
# Installation
- Requires:
- iOS 10 SDK and above
- Swift 4.2 (Xcode 10+)
- Swift 5.0 (Xcode 10+)
- For previous Swift versions: [Swift 3.2](https://github.com/JohnEstropia/CoreStore/tree/4.2.3), [Swift 4.2](https://github.com/JohnEstropia/CoreStore/tree/6.2.1)
- Dependencies:
- *None*
- Other notes:
@@ -1872,7 +1811,7 @@ Once the version lock is set, any changes in the properties or to the model will
### Install with CocoaPods
In your `Podfile`, add
```
pod 'CoreStore', '~> 6.0'
pod 'CoreStore', '~> 6.3'
```
and run
```
@@ -1883,7 +1822,7 @@ This installs CoreStore as a framework. Declare `import CoreStore` in your swift
### Install with Carthage
In your `Cartfile`, add
```
github "JohnEstropia/CoreStore" >= 6.0.0
github "JohnEstropia/CoreStore" >= 6.3.0
```
and run
```
@@ -1894,7 +1833,7 @@ This installs CoreStore as a framework. Declare `import CoreStore` in your swift
#### Install with Swift Package Manager:
```swift
dependencies: [
.package(url: "https://github.com/JohnEstropia/CoreStore.git", from: "6.0.0"))
.package(url: "https://github.com/JohnEstropia/CoreStore.git", from: "6.3.0"))
]
```
Declare `import CoreStore` in your swift file to use the library.

View File

@@ -50,45 +50,11 @@ public final class AsynchronousDataTransaction: BaseDataTransaction {
// MARK: - Result
/**
The `Result` contains the success or failure information for a completed transaction
The `Result` contains the success or failure information for a completed transaction.
`Result<T>.success` indicates that the transaction succeeded, either because the save succeeded or because there were no changes to save. The associated `userInfo` is the value returned from the transaction closure.
`Result<T>.failure` indicates that the transaction either failed or was cancelled. The associated object for this value is a `CoreStoreError` enum value.
*/
public enum Result<T> {
/**
`Result<T>.success` indicates that the transaction succeeded, either because the save succeeded or because there were no changes to save. The associated `userInfo` is the value returned from the transaction closure.
*/
case success(userInfo: T)
/**
`Result<T>.failure` indicates that the transaction either failed or was cancelled. The associated object for this value is a `CoreStoreError` enum value.
*/
case failure(error: CoreStoreError)
/**
Returns `true` if the result indicates `.success`, `false` if the result is `.failure`.
*/
public var boolValue: Bool {
switch self {
case .success: return true
case .failure: return false
}
}
// MARK: Internal
internal init(userInfo: T) {
self = .success(userInfo: userInfo)
}
internal init(error: CoreStoreError) {
self = .failure(error: error)
}
}
public typealias Result<UserInfoType> = Swift.Result<UserInfoType, CoreStoreError>
// MARK: -
@@ -212,67 +178,4 @@ public final class AsynchronousDataTransaction: BaseDataTransaction {
group.wait()
self.context.reset()
}
// MARK: Deprecated
@available(*, deprecated, message: "Use the new auto-commiting methods `DataStack.perform(asynchronous:completion:)` or `DataStack.perform(asynchronous:success:failure:)`. Please read the documentation on the behavior of the new methods.")
public func commit(_ completion: @escaping (_ result: SaveResult) -> Void = { _ in }) {
CoreStore.assert(
self.transactionQueue.cs_isCurrentExecutionContext(),
"Attempted to commit a \(cs_typeName(self)) outside its designated queue."
)
CoreStore.assert(
!self.isCommitted,
"Attempted to commit a \(cs_typeName(self)) more than once."
)
self.autoCommit { (hasChanges, error) in
if let error = error {
completion(SaveResult(error))
}
else {
completion(SaveResult(hasChanges: hasChanges))
}
}
}
@available(*, deprecated, message: "Secondary tasks spawned from AsynchronousDataTransactions and SynchronousDataTransactions are no longer supported. ")
@discardableResult
public func beginSynchronous(_ closure: @escaping (_ transaction: SynchronousDataTransaction) -> Void) -> SaveResult? {
CoreStore.assert(
self.transactionQueue.cs_isCurrentExecutionContext(),
"Attempted to begin a child transaction from a \(cs_typeName(self)) outside its designated queue."
)
CoreStore.assert(
!self.isCommitted,
"Attempted to begin a child transaction from an already committed \(cs_typeName(self))."
)
let childTransaction = SynchronousDataTransaction(
mainContext: self.context,
queue: self.childTransactionQueue
)
childTransaction.transactionQueue.cs_sync {
closure(childTransaction)
if !childTransaction.isCommitted && childTransaction.hasChanges {
CoreStore.log(
.warning,
message: "The closure for the \(cs_typeName(childTransaction)) completed without being committed. All changes made within the transaction were discarded."
)
}
}
switch childTransaction.result {
case .none: return nil
case .some(let hasChanges, nil): return SaveResult(hasChanges: hasChanges)
case .some(_, let error?): return SaveResult(error)
}
}
}

View File

@@ -561,13 +561,4 @@ extension BaseDataTransaction: FetchableSource, QueryableSource {
return self.context
}
// MARK: Obsoleted
@available(swift, obsoleted: 3.1, renamed: "unsafeContext()")
public func internalContext() -> NSManagedObjectContext {
fatalError()
}
}

View File

@@ -442,49 +442,4 @@ public /*abstract*/ class BaseDataTransaction {
self.context.reset()
}
// MARK: Deprecated
@available(*, deprecated, message: "Use insertedObjects(_:) and pass the specific entity type")
public func insertedObjects() -> Set<NSManagedObject> {
CoreStore.assert(
self.transactionQueue.cs_isCurrentExecutionContext(),
"Attempted to access inserted objects from a \(cs_typeName(self)) outside its designated queue."
)
CoreStore.assert(
!self.isCommitted,
"Attempted to access inserted objects from an already committed \(cs_typeName(self))."
)
return self.context.insertedObjects
}
@available(*, deprecated, message: "Use updatedObjects(_:) and pass the specific entity type")
public func updatedObjects() -> Set<NSManagedObject> {
CoreStore.assert(
self.transactionQueue.cs_isCurrentExecutionContext(),
"Attempted to access updated objects from a \(cs_typeName(self)) outside its designated queue."
)
CoreStore.assert(
!self.isCommitted,
"Attempted to access updated objects from an already committed \(cs_typeName(self))."
)
return self.context.updatedObjects
}
@available(*, deprecated, message: "Use deletedObjects(_:) and pass the specific entity type")
public func deletedObjects() -> Set<NSManagedObject> {
CoreStore.assert(
self.transactionQueue.cs_isCurrentExecutionContext(),
"Attempted to access deleted objects from a \(cs_typeName(self)) outside its designated queue."
)
CoreStore.assert(
!self.isCommitted,
"Attempted to access deleted objects from an already committed \(cs_typeName(self))."
)
return self.context.deletedObjects
}
}

View File

@@ -156,41 +156,6 @@ public final class CSAsynchronousDataTransaction: CSBaseDataTransaction, CoreSto
super.init(swiftValue)
}
// MARK: Deprecated
@available(*, deprecated, message: "Use the new -[CSAsynchronousDataTransaction commitWithSuccess:failure:] method.")
@objc
public func commitWithCompletion(_ completion: ((_ result: CSSaveResult) -> Void)?) {
CoreStore.assert(
self.bridgeToSwift.transactionQueue.cs_isCurrentExecutionContext(),
"Attempted to commit a \(cs_typeName(self)) outside its designated queue."
)
CoreStore.assert(
!self.bridgeToSwift.isCommitted,
"Attempted to commit a \(cs_typeName(self)) more than once."
)
self.bridgeToSwift.commit { (result) in
completion?(result.bridgeToObjectiveC)
}
}
@available(*, deprecated, message: "Secondary tasks spawned from CSAsynchronousDataTransactions and CSSynchronousDataTransactions are no longer supported. ")
@objc
@discardableResult
public func beginSynchronous(_ closure: @escaping (_ transaction: CSSynchronousDataTransaction) -> Void) -> CSSaveResult? {
return bridge {
self.bridgeToSwift.beginSynchronous { (transaction) in
closure(transaction.bridgeToObjectiveC)
}
}
}
}

View File

@@ -251,28 +251,4 @@ public class CSBaseDataTransaction: NSObject {
self.swiftTransaction = swiftValue
super.init()
}
// MARK: Deprecated
@available(*, deprecated, message: "Use -[insertedObjectsOfType:] and pass the specific entity class")
@objc
public func insertedObjects() -> Set<NSManagedObject> {
return self.swiftTransaction.insertedObjects()
}
@available(*, deprecated, message: "Use -[updatedObjectsOfType:] and pass the specific entity class")
@objc
public func updatedObjects() -> Set<NSManagedObject> {
return self.swiftTransaction.updatedObjects()
}
@available(*, deprecated, message: "Use -[deletedObjectsOfType:] and pass the specific entity class")
@objc
public func deletedObjects() -> Set<NSManagedObject> {
return self.swiftTransaction.deletedObjects()
}
}

View File

@@ -125,21 +125,4 @@ extension CSCoreStore {
return self.defaultStack.addSQLiteStorageAndWait(storage, error: error)
}
// MARK: Deprecated
@available(*, deprecated, message: "Use the new +entityTypesByNameForType: method passing `[NSManagedObject class]` as argument.")
@objc
public static var entityClassesByName: [EntityName: NSManagedObject.Type] {
return CoreStore.entityTypesByName
}
@available(*, deprecated, message: "Use the new +entityTypesByNameForType: method passing `[NSManagedObject class]` as argument.")
@objc
public static func entityClassWithName(_ name: EntityName) -> NSManagedObject.Type? {
return CoreStore.entityTypesByName[name]
}
}

View File

@@ -45,7 +45,7 @@ extension CSCoreStore {
Using the `defaultStack`, begins a transaction synchronously where `NSManagedObject` creates, updates, and deletes can be made.
- parameter closure: the block where creates, updates, and deletes can be made to the transaction. Transaction blocks are executed serially in a background queue, and all changes are made from a concurrent `NSManagedObjectContext`.
- returns: a `CSSaveResult` value indicating success or failure, or `nil` if the transaction was not comitted synchronously
- returns: `YES` if the commit succeeded, `NO` if the commit failed. If `NO`, the `error` argument will hold error information.
*/
@objc
public static func beginSynchronous(_ closure: @escaping (_ transaction: CSSynchronousDataTransaction) -> Void, error: NSErrorPointer) -> Bool {
@@ -91,15 +91,4 @@ extension CSCoreStore {
CoreStore.refreshAndMergeAllObjects()
}
// MARK: Deprecated
@available(*, deprecated, message: "Use the new +[CSCoreStore beginSynchronous:error:] API that reports failure using an error instance.")
@objc
@discardableResult
public static func beginSynchronous(_ closure: @escaping (_ transaction: CSSynchronousDataTransaction) -> Void) -> CSSaveResult? {
return self.defaultStack.beginSynchronous(closure)
}
}

View File

@@ -68,7 +68,7 @@ extension CSDataStack {
sectionBy: nil,
applyFetchClauses: { (fetchRequest) in
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
}
).bridgeToObjectiveC
}
@@ -97,7 +97,7 @@ extension CSDataStack {
sectionBy: nil,
applyFetchClauses: { (fetchRequest) in
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
},
createAsynchronously: {
@@ -131,7 +131,7 @@ extension CSDataStack {
sectionBy: sectionBy.bridgeToSwift,
applyFetchClauses: { (fetchRequest) in
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
}
).bridgeToObjectiveC
}
@@ -160,7 +160,7 @@ extension CSDataStack {
sectionBy: sectionBy.bridgeToSwift,
applyFetchClauses: { (fetchRequest) in
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
},
createAsynchronously: {

View File

@@ -131,21 +131,4 @@ extension CSDataStack {
self.bridgeToSwift.refreshAndMergeAllObjects()
}
// MARK: Deprecated
@available(*, deprecated, message: "Use the new -[CSDataStack beginSynchronous:error:] API that reports failure using an error instance.")
@objc
@discardableResult
public func beginSynchronous(_ closure: @escaping (_ transaction: CSSynchronousDataTransaction) -> Void) -> CSSaveResult? {
return bridge {
self.bridgeToSwift.beginSynchronous { (transaction) in
closure(transaction.bridgeToObjectiveC)
}
}
}
}

View File

@@ -204,60 +204,6 @@ public final class CSDataStack: NSObject, CoreStoreObjectiveCType {
self.bridgeToSwift = swiftValue
super.init()
}
// MARK: Deprecated
@available(*, deprecated, message: "Use the -[initWithXcodeModelName:bundle:versionChain:] initializer.")
@objc
public convenience init(modelName: XcodeDataModelFileName?, bundle: Bundle?, versionChain: [String]?) {
self.init(
DataStack(
xcodeModelName: modelName ?? DataStack.applicationName,
bundle: bundle ?? Bundle.main,
migrationChain: versionChain.flatMap { MigrationChain($0) } ?? nil
)
)
}
@available(*, deprecated, message: "Use the -[initWithModelName:bundle:versionChain:] initializer.")
@objc
public convenience init(model: NSManagedObjectModel, versionChain: [String]?) {
self.init(
DataStack(
model: model,
migrationChain: versionChain.flatMap { MigrationChain($0) } ?? nil
)
)
}
@available(*, deprecated, message: "Use the -[initWithModelName:bundle:versionTree:] initializer.")
@objc
public convenience init(model: NSManagedObjectModel, versionTree: [String]?) {
self.init(
DataStack(
model: model,
migrationChain: versionTree.flatMap { MigrationChain($0) } ?? nil
)
)
}
@available(*, deprecated, message: "Use the new -entityTypesByNameForType: method passing `[NSManagedObject class]` as argument.")
@objc
public var entityClassesByName: [EntityName: NSManagedObject.Type] {
return self.bridgeToSwift.entityTypesByName
}
@available(*, deprecated, message: "Use the new -entityTypesByNameForType: method passing `[NSManagedObject class]` as argument.")
@objc
public func entityClassWithName(_ name: EntityName) -> NSManagedObject.Type? {
return self.bridgeToSwift.entityTypesByName[name]
}
}

View File

@@ -503,7 +503,7 @@ public final class CSListMonitor: NSObject {
self.bridgeToSwift.refetch { (fetchRequest) in
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
}
}

View File

@@ -43,7 +43,7 @@ public final class CSMigrationResult: NSObject, CoreStoreObjectiveCType {
@objc
public var isSuccess: Bool {
return self.bridgeToSwift.isSuccess
return (try? self.bridgeToSwift.get()) != nil
}
/**
@@ -52,7 +52,7 @@ public final class CSMigrationResult: NSObject, CoreStoreObjectiveCType {
@objc
public var isFailure: Bool {
return !self.bridgeToSwift.isSuccess
return !self.isSuccess
}
/**
@@ -173,7 +173,7 @@ public final class CSMigrationResult: NSObject, CoreStoreObjectiveCType {
// MARK: - MigrationResult
extension MigrationResult: CoreStoreSwiftType {
extension MigrationResult {
// MARK: CoreStoreSwiftType

View File

@@ -191,23 +191,6 @@ public final class CSSQLiteStore: NSObject, CSLocalStorage, CoreStoreObjectiveCT
self.bridgeToSwift = swiftValue
super.init()
}
// MARK: Obsoleted
@available(swift, obsoleted: 3.1, message: "The `mappingModelBundles` argument of this method is ignored. Use the new -[CSSQLiteStore initWithFileURL:configuration:localStorageOptions:]) initializer instead.")
@objc
public convenience init(fileURL: URL, configuration: ModelConfiguration, mappingModelBundles: [Bundle]?, localStorageOptions: Int) {
fatalError()
}
@available(swift, obsoleted: 3.1, message: "The `mappingModelBundles` argument of this method is ignored. Use the new -[CSSQLiteStore initWithFileName:configuration:localStorageOptions:]) initializer instead.")
@objc
public convenience init(fileName: String, configuration: ModelConfiguration, mappingModelBundles: [Bundle]?, localStorageOptions: Int) {
fatalError()
}
}

View File

@@ -1,147 +0,0 @@
//
// CSSaveResult.swift
// CoreStore
//
// Copyright © 2018 John Rommel Estropia
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
import Foundation
import CoreData
// MARK: - CSSaveResult
@available(*, deprecated, message: "Use APIs that report failures with `CSError`s instead.")
@objc
public final class CSSaveResult: NSObject, CoreStoreObjectiveCType {
@objc
public var isSuccess: Bool {
return self.bridgeToSwift.boolValue
}
@objc
public var isFailure: Bool {
return !self.bridgeToSwift.boolValue
}
@objc
public var hasChanges: Bool {
guard case .success(let hasChanges) = self.bridgeToSwift else {
return false
}
return hasChanges
}
@objc
public var error: NSError? {
guard case .failure(let error) = self.bridgeToSwift else {
return nil
}
return error.bridgeToObjectiveC
}
@objc
public func handleSuccess(_ success: (_ hasChanges: Bool) -> Void, failure: (_ error: NSError) -> Void) {
switch self.bridgeToSwift {
case .success(let hasChanges):
success(hasChanges)
case .failure(let error):
failure(error.bridgeToObjectiveC)
}
}
@objc
public func handleSuccess(_ success: (_ hasChanges: Bool) -> Void) {
guard case .success(let hasChanges) = self.bridgeToSwift else {
return
}
success(hasChanges)
}
@objc
public func handleFailure(_ failure: (_ error: NSError) -> Void) {
guard case .failure(let error) = self.bridgeToSwift else {
return
}
failure(error.bridgeToObjectiveC)
}
// MARK: NSObject
public override var hash: Int {
return self.bridgeToSwift.hashValue
}
public override func isEqual(_ object: Any?) -> Bool {
guard let object = object as? CSSaveResult else {
return false
}
return self.bridgeToSwift == object.bridgeToSwift
}
public override var description: String {
return "(\(String(reflecting: type(of: self)))) \(self.bridgeToSwift.coreStoreDumpString)"
}
// MARK: CoreStoreObjectiveCType
public let bridgeToSwift: SaveResult
public required init(_ swiftValue: SaveResult) {
self.bridgeToSwift = swiftValue
super.init()
}
}
// MARK: - SaveResult
@available(*, deprecated, message: "Use the new DataStack.perform(asynchronous:...) and DataStack.perform(synchronous:...) family of APIs")
extension SaveResult: CoreStoreSwiftType {
// MARK: CoreStoreSwiftType
public var bridgeToObjectiveC: CSSaveResult {
return CSSaveResult(self)
}
}

View File

@@ -177,7 +177,7 @@ public final class CSSetupResult: NSObject {
// MARK: - SetupResult
extension SetupResult where T: CoreStoreSwiftType, T.ObjectiveCType: CSStorageInterface {
extension SetupResult where Success: StorageInterface, Success: CoreStoreSwiftType, Success.ObjectiveCType: CSStorageInterface, Failure == CoreStoreError {
// MARK: CoreStoreSwiftType

View File

@@ -143,33 +143,6 @@ public final class CSSynchronousDataTransaction: CSBaseDataTransaction, CoreStor
super.init(swiftValue)
}
// MARK: Deprecated
@available(*, deprecated, message: "Use the new -[CSSynchronousDataTransaction commitAndWaitWithError:] method")
@objc
public func commitAndWait() -> CSSaveResult {
return bridge {
self.bridgeToSwift.commitAndWait()
}
}
@available(*, deprecated, message: "Secondary tasks spawned from CSAsynchronousDataTransactions and CSSynchronousDataTransactions are no longer supported. ")
@objc
@discardableResult
public func beginSynchronous(_ closure: @escaping (_ transaction: CSSynchronousDataTransaction) -> Void) -> CSSaveResult? {
return bridge {
self.bridgeToSwift.beginSynchronous { (transaction) in
closure(transaction.bridgeToObjectiveC)
}
}
}
}

View File

@@ -203,51 +203,6 @@ public final class CSUnsafeDataTransaction: CSBaseDataTransaction, CoreStoreObje
super.init(swiftValue)
}
// MARK: Deprecated
@available(*, deprecated, renamed: "unsafeContext()")
@objc
public var internalContext: NSManagedObjectContext {
return self.bridgeToSwift.context
}
@available(*, deprecated, message: "Use the new -[CSUnsafeDataTransaction commitWithSuccess:failure:] method")
@objc
public func commit(_ completion: ((_ result: CSSaveResult) -> Void)?) {
self.bridgeToSwift.context.saveAsynchronouslyWithCompletion { (hasChanges, error) in
defer {
withExtendedLifetime(self, {})
}
if let error = error {
completion?(SaveResult(error).bridgeToObjectiveC)
}
else {
completion?(SaveResult(hasChanges: hasChanges).bridgeToObjectiveC)
}
}
}
@available(*, deprecated, message: "Use the new -[CSUnsafeDataTransaction commitAndWaitWithError:] method")
@objc
public func commitAndWait() -> CSSaveResult {
return bridge { () -> SaveResult in
switch self.bridgeToSwift.context.saveSynchronously(waitForMerge: true) {
case (let hasChanges, nil): return SaveResult(hasChanges: hasChanges)
case (_, let error?): return SaveResult(error)
}
}
}
}

View File

@@ -403,9 +403,16 @@ extension UnsafeDataModelSchema: CustomDebugStringConvertible, CoreStoreDebugStr
// MARK: - ListMonitor
@available(macOS 10.12, *)
private struct CoreStoreFetchedSectionInfoWrapper: CoreStoreDebugStringConvertible {
fileprivate struct CoreStoreFetchedSectionInfoWrapper: CoreStoreDebugStringConvertible {
let sectionInfo: NSFetchedResultsSectionInfo
// MARK: CustomDebugStringConvertible
var debugDescription: String {
return formattedDebugDescription(self)
}
// MARK: CoreStoreDebugStringConvertible
var coreStoreDumpString: String {
@@ -415,6 +422,10 @@ private struct CoreStoreFetchedSectionInfoWrapper: CoreStoreDebugStringConvertib
("indexTitle", self.sectionInfo.indexTitle as Any)
)
}
// MARK: FilePrivate
let sectionInfo: NSFetchedResultsSectionInfo
}
@available(macOS 10.12, *)
@@ -546,41 +557,7 @@ extension MigrationChain: CustomDebugStringConvertible, CoreStoreDebugStringConv
// MARK: - MigrationType
extension MigrationResult: CustomDebugStringConvertible, CoreStoreDebugStringConvertible {
// MARK: CustomDebugStringConvertible
public var debugDescription: String {
return formattedDebugDescription(self)
}
// MARK: CoreStoreDebugStringConvertible
public var coreStoreDumpString: String {
switch self {
case .success(let migrationTypes):
return createFormattedString(
".success (", ")",
("migrationTypes", migrationTypes)
)
case .failure(let error):
return createFormattedString(
".failure (", ")",
("error", error)
)
}
}
}
// MARK: - MigrationType
extension MigrationType: CustomDebugStringConvertible, CoreStoreDebugStringConvertible {
extension MigrationType: CoreStoreDebugStringConvertible {
// MARK: CustomDebugStringConvertible
@@ -683,41 +660,6 @@ extension PartialObject: CustomDebugStringConvertible, CoreStoreDebugStringConve
}
// MARK: - SaveResult
@available(*, deprecated, message: "Use the new DataStack.perform(asynchronous:...) and DataStack.perform(synchronous:...) family of APIs")
extension SaveResult: CustomDebugStringConvertible, CoreStoreDebugStringConvertible {
// MARK: CustomDebugStringConvertible
public var debugDescription: String {
return formattedDebugDescription(self)
}
// MARK: CoreStoreDebugStringConvertible
public var coreStoreDumpString: String {
switch self {
case .success(let hasChanges):
return createFormattedString(
".success (", ")",
("hasChanges", hasChanges)
)
case .failure(let error):
return createFormattedString(
".failure (", ")",
("error", error)
)
}
}
}
// MARK: - SectionBy
@available(macOS 10.12, *)
@@ -837,40 +779,6 @@ extension SelectTerm: CustomDebugStringConvertible, CoreStoreDebugStringConverti
}
// MARK: - SetupResult
extension SetupResult: CustomDebugStringConvertible, CoreStoreDebugStringConvertible {
// MARK: CustomDebugStringConvertible
public var debugDescription: String {
return formattedDebugDescription(self)
}
// MARK: CoreStoreDebugStringConvertible
public var coreStoreDumpString: String {
switch self {
case .success(let storage):
return createFormattedString(
".success (", ")",
("storage", storage)
)
case .failure(let error):
return createFormattedString(
".failure (", ")",
("error", error)
)
}
}
}
// MARK: - SQLiteStore
extension SQLiteStore: CustomDebugStringConvertible, CoreStoreDebugStringConvertible {
@@ -1015,7 +923,7 @@ extension VersionLock: CustomStringConvertible, CustomDebugStringConvertible, Co
let data = keyValue.value
let count = data.count
let bytes = data.withUnsafeBytes { (pointer: UnsafePointer<HashElement>) in
let bytes = data.withUnsafeBytes { (pointer) in
return (0 ..< (count / MemoryLayout<HashElement>.size))
.map({ "\("0x\(String(pointer[$0], radix: 16, uppercase: false))")" })
@@ -1132,7 +1040,7 @@ extension String {
// MARK: - Private: CoreStoreDebugStringConvertible
public protocol CoreStoreDebugStringConvertible {
public protocol CoreStoreDebugStringConvertible: CustomDebugStringConvertible {
var coreStoreDumpString: String { get }
}
@@ -1213,6 +1121,11 @@ extension NSAttributeDescription: CoreStoreDebugStringConvertible {
extension NSAttributeType: CoreStoreDebugStringConvertible {
public var debugDescription: String {
return formattedDebugDescription(self)
}
public var coreStoreDumpString: String {
switch self {
@@ -1248,6 +1161,11 @@ extension Bundle: CoreStoreDebugStringConvertible {
extension NSDeleteRule: CoreStoreDebugStringConvertible {
public var debugDescription: String {
return formattedDebugDescription(self)
}
public var coreStoreDumpString: String {
switch self {
@@ -1420,8 +1338,39 @@ extension Optional: CoreStoreDebugStringConvertible {
}
}
extension Result: CoreStoreDebugStringConvertible {
public var debugDescription: String {
return formattedDebugDescription(self)
}
public var coreStoreDumpString: String {
switch self {
case .success(let info):
return createFormattedString(
".success (", ")",
("info", info)
)
case .failure(let error):
return createFormattedString(
".failure (", ")",
("error", error)
)
}
}
}
extension Selector: CoreStoreDebugStringConvertible {
public var debugDescription: String {
return formattedDebugDescription(self)
}
public var coreStoreDumpString: String {
return "\"\(self)\""

View File

@@ -139,22 +139,4 @@ extension CoreStore {
return try self.defaultStack.addStorageAndWait(storage)
}
// MARK: Deprecated
@available(*, deprecated, message: "Use the new CoreStore.entityTypesByName(for:) method passing `NSManagedObject.self` as argument.")
public static var entityTypesByName: [EntityName: NSManagedObject.Type] {
return self.defaultStack.entityTypesByName
}
// MARK: Obsolete
@available(swift, obsoleted: 3.1, renamed: "entityDescription(for:)")
public static func entityDescriptionForType(_ type: NSManagedObject.Type) -> NSEntityDescription? {
return self.entityDescription(for: type)
}
}

View File

@@ -31,7 +31,7 @@ import Foundation
extension CoreStore {
/**
Using the `defaultStack`, performs a transaction asynchronously where `NSManagedObject` or `CoreStoreObject` creates, updates, and deletes can be made. The changes are commited automatically after the `task` closure returns. On success, the value returned from closure will be the wrapped as `.success(userInfo: T)` in the `completion`'s `Result<T>`. Any errors thrown from inside the `task` will be reported as `.failure(error: CoreStoreError)`. To cancel/rollback changes, call `try transaction.cancel()`, which throws a `CoreStoreError.userCancelled`.
Using the `defaultStack`, performs a transaction asynchronously where `NSManagedObject` or `CoreStoreObject` creates, updates, and deletes can be made. The changes are commited automatically after the `task` closure returns. On success, the value returned from closure will be the wrapped as `.success(T)` in the `completion`'s `Result<T>`. Any errors thrown from inside the `task` will be reported as `.failure(CoreStoreError)`. To cancel/rollback changes, call `try transaction.cancel()`, which throws a `CoreStoreError.userCancelled`.
- parameter task: the asynchronous closure where creates, updates, and deletes can be made to the transaction. Transaction blocks are executed serially in a background queue, and all changes are made from a concurrent `NSManagedObjectContext`.
- parameter completion: the closure executed after the save completes. The `Result` argument of the closure will either wrap the return value of `task`, or any uncaught errors thrown from within `task`. Cancelled `task`s will be indicated by `.failure(error: CoreStoreError.userCancelled)`. Custom errors thrown by the user will be wrapped in `CoreStoreError.userError(error: Error)`.
@@ -84,20 +84,4 @@ extension CoreStore {
self.defaultStack.refreshAndMergeAllObjects()
}
// MARK: Deprecated
@available(*, deprecated, message: "Use the new auto-commiting methods `perform(asynchronous:completion:)` or `perform(asynchronous:success:failure:)`. Please read the documentation on the behavior of the new methods.")
public static func beginAsynchronous(_ closure: @escaping (_ transaction: AsynchronousDataTransaction) -> Void) {
self.defaultStack.beginAsynchronous(closure)
}
@available(*, deprecated, message: "Use the new auto-commiting method `perform(synchronous:)`. Please read the documentation on the behavior of the new methods.")
@discardableResult
public static func beginSynchronous(_ closure: @escaping (_ transaction: SynchronousDataTransaction) -> Void) -> SaveResult? {
return self.defaultStack.beginSynchronous(closure)
}
}

View File

@@ -0,0 +1,91 @@
//
// CoreStoreFetchRequest.swift
// CoreStore
//
// Copyright © 2019 John Rommel Estropia
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
import Foundation
import CoreData
import ObjectiveC
// MARK: - CoreStoreFetchRequest
// Bugfix for NSFetchRequest messing up memory management for `affectedStores`
// http://stackoverflow.com/questions/14396375/nsfetchedresultscontroller-crashes-in-ios-6-if-affectedstores-is-specified
internal final class CoreStoreFetchRequest<T: NSFetchRequestResult>: NSFetchRequest<NSFetchRequestResult> {
@nonobjc
internal func safeAffectedStores() -> [NSPersistentStore]? {
return self.copiedAffectedStores as! [NSPersistentStore]?
}
@nonobjc @inline(__always)
internal func staticCast() -> NSFetchRequest<T> {
return unsafeBitCast(self, to: NSFetchRequest<T>.self)
}
@nonobjc @inline(__always)
internal func dynamicCast<U>() -> NSFetchRequest<U> {
return unsafeBitCast(self, to: NSFetchRequest<U>.self)
}
// MARK: NSFetchRequest
@objc dynamic
override var affectedStores: [NSPersistentStore]? {
get {
return super.affectedStores
}
set {
if #available(iOS 11.0, macOS 10.13, watchOS 4.0, tvOS 11.0, *) {
self.copiedAffectedStores = (newValue as NSArray?)?.copy() as! NSArray?
super.affectedStores = newValue
return
}
// Bugfix for NSFetchRequest messing up memory management for `affectedStores`
// http://stackoverflow.com/questions/14396375/nsfetchedresultscontroller-crashes-in-ios-6-if-affectedstores-is-specified
if let releaseArray = self.releaseArray {
releaseArray.release()
self.releaseArray = nil
}
self.copiedAffectedStores = (newValue as NSArray?)?.copy() as! NSArray?
super.affectedStores = newValue
self.releaseArray = (super.affectedStores as NSArray?).map(Unmanaged<NSArray>.passRetained(_:))
}
}
// MARK: Private
private var copiedAffectedStores: NSArray?
private var releaseArray: Unmanaged<NSArray>?
}

View File

@@ -33,10 +33,13 @@ import CoreData
internal final class CoreStoreFetchedResultsController: NSFetchedResultsController<NSManagedObject> {
// MARK: Internal
@nonobjc
internal let typedFetchRequest: CoreStoreFetchRequest<NSManagedObject>
@nonobjc
internal convenience init<D>(dataStack: DataStack, fetchRequest: NSFetchRequest<NSManagedObject>, from: From<D>, sectionBy: SectionBy<D>? = nil, applyFetchClauses: @escaping (_ fetchRequest: NSFetchRequest<NSManagedObject>) -> Void) {
internal convenience init<D>(dataStack: DataStack, fetchRequest: CoreStoreFetchRequest<NSManagedObject>, from: From<D>, sectionBy: SectionBy<D>? = nil, applyFetchClauses: @escaping (_ fetchRequest: CoreStoreFetchRequest<NSManagedObject>) -> Void) {
self.init(
context: dataStack.mainContext,
fetchRequest: fetchRequest,
@@ -47,7 +50,7 @@ internal final class CoreStoreFetchedResultsController: NSFetchedResultsControll
}
@nonobjc
internal init<D>(context: NSManagedObjectContext, fetchRequest: NSFetchRequest<NSManagedObject>, from: From<D>, sectionBy: SectionBy<D>? = nil, applyFetchClauses: @escaping (_ fetchRequest: NSFetchRequest<NSManagedObject>) -> Void) {
internal init<D>(context: NSManagedObjectContext, fetchRequest: CoreStoreFetchRequest<NSManagedObject>, from: From<D>, sectionBy: SectionBy<D>? = nil, applyFetchClauses: @escaping (_ fetchRequest: CoreStoreFetchRequest<NSManagedObject>) -> Void) {
_ = try? from.applyToFetchRequest(
fetchRequest,
@@ -55,14 +58,15 @@ internal final class CoreStoreFetchedResultsController: NSFetchedResultsControll
applyAffectedStores: false
)
applyFetchClauses(fetchRequest)
self.typedFetchRequest = fetchRequest
self.reapplyAffectedStores = { fetchRequest, context in
try from.applyAffectedStoresForFetchedRequest(fetchRequest, context: context)
}
super.init(
fetchRequest: fetchRequest,
fetchRequest: fetchRequest.staticCast(),
managedObjectContext: context,
sectionNameKeyPath: sectionBy?.sectionKeyPath,
cacheName: nil
@@ -72,7 +76,7 @@ internal final class CoreStoreFetchedResultsController: NSFetchedResultsControll
@nonobjc
internal func performFetchFromSpecifiedStores() throws {
try self.reapplyAffectedStores(self.fetchRequest, self.managedObjectContext)
try self.reapplyAffectedStores(self.typedFetchRequest, self.managedObjectContext)
try self.performFetch()
}
@@ -91,5 +95,5 @@ internal final class CoreStoreFetchedResultsController: NSFetchedResultsControll
// MARK: Private
@nonobjc
private let reapplyAffectedStores: (_ fetchRequest: NSFetchRequest<NSManagedObject>, _ context: NSManagedObjectContext) throws -> Void
private let reapplyAffectedStores: (_ fetchRequest: CoreStoreFetchRequest<NSManagedObject>, _ context: NSManagedObjectContext) throws -> Void
}

View File

@@ -258,69 +258,3 @@ extension RelationshipContainer.ToOne {
return Where(relationship.keyPath, isMemberOf: sequence)
}
}
// MARK: Deprecated
extension DynamicObject where Self: CoreStoreObject {
@available(*, deprecated, message: "Use the String(keyPath:) initializer and pass the KeyPath: String(keyPath: \\Person.name)")
public static func keyPath<O, V>(_ attribute: (Self) -> ValueContainer<O>.Required<V>) -> String {
return attribute(self.meta).keyPath
}
@available(*, deprecated, message: "Use the String(keyPath:) initializer and pass the KeyPath: String(keyPath: \\Person.name)")
public static func keyPath<O, V>(_ attribute: (Self) -> ValueContainer<O>.Optional<V>) -> String {
return attribute(self.meta).keyPath
}
@available(*, deprecated, message: "Use the String(keyPath:) initializer and pass the KeyPath: String(keyPath: \\Person.friend)")
public static func keyPath<O, D>(_ relationship: (Self) -> RelationshipContainer<O>.ToOne<D>) -> String {
return relationship(self.meta).keyPath
}
@available(*, deprecated, message: "Use the String(keyPath:) initializer and pass the KeyPath: String(keyPath: \\Person.friends)")
public static func keyPath<O, D>(_ relationship: (Self) -> RelationshipContainer<O>.ToManyOrdered<D>) -> String {
return relationship(self.meta).keyPath
}
@available(*, deprecated, message: "Use the String(keyPath:) initializer and pass the KeyPath: String(keyPath: \\Person.friends)")
public static func keyPath<O, D>(_ relationship: (Self) -> RelationshipContainer<O>.ToManyUnordered<D>) -> String {
return relationship(self.meta).keyPath
}
@available(*, deprecated, message: "Use the Where<DynamicObject>(_:) initializer that accepts the same closure argument")
public static func `where`(_ condition: (Self) -> Where<Self>) -> Where<Self> {
return condition(self.meta)
}
@available(*, deprecated, message: "Use the new OrderBy<DynamicObject>(ascending:) overload that accepts the same closure argument")
public static func orderBy<O, V>(ascending attribute: (Self) -> ValueContainer<O>.Required<V>) -> OrderBy<Self> {
return OrderBy(.ascending(attribute(self.meta).keyPath))
}
@available(*, deprecated, message: "Use the new OrderBy<DynamicObject>(ascending:) overload that accepts the same closure argument")
public static func orderBy<O, V>(ascending attribute: (Self) -> ValueContainer<O>.Optional<V>) -> OrderBy<Self> {
return OrderBy(.ascending(attribute(self.meta).keyPath))
}
@available(*, deprecated, message: "Use the new OrderBy<DynamicObject>(descending:) overload that accepts the same closure argument")
public static func orderBy<O, V>(descending attribute: (Self) -> ValueContainer<O>.Required<V>) -> OrderBy<Self> {
return OrderBy(.descending(attribute(self.meta).keyPath))
}
@available(*, deprecated, message: "Use the new OrderBy<DynamicObject>(descending:) overload that accepts the same closure argument")
public static func orderBy<O, V>(descending attribute: (Self) -> ValueContainer<O>.Optional<V>) -> OrderBy<Self> {
return OrderBy(.descending(attribute(self.meta).keyPath))
}
}

View File

@@ -55,7 +55,7 @@ extension DataStack {
DispatchQueue.main.async {
completion(SetupResult(storage))
completion(.success(storage))
}
return
}
@@ -70,7 +70,7 @@ extension DataStack {
DispatchQueue.main.async {
completion(SetupResult(storage))
completion(.success(storage))
}
}
catch {
@@ -82,7 +82,7 @@ extension DataStack {
)
DispatchQueue.main.async {
completion(SetupResult(storeError))
completion(.failure(storeError))
}
}
}
@@ -119,7 +119,7 @@ extension DataStack {
DispatchQueue.main.async {
completion(SetupResult(storage))
completion(.success(storage))
}
return nil
}
@@ -131,7 +131,7 @@ extension DataStack {
DispatchQueue.main.async {
completion(SetupResult(existingStorage))
completion(.success(existingStorage))
}
return nil
}
@@ -143,7 +143,7 @@ extension DataStack {
)
DispatchQueue.main.async {
completion(SetupResult(error))
completion(.failure(error))
}
return nil
}
@@ -181,17 +181,17 @@ extension DataStack {
DispatchQueue.main.async {
completion(SetupResult(storage))
completion(.success(storage))
}
}
catch {
completion(SetupResult(error))
completion(.failure(CoreStoreError(error)))
}
return
}
completion(SetupResult(error))
completion(.failure(CoreStoreError(error)))
return
}
@@ -201,12 +201,12 @@ extension DataStack {
DispatchQueue.main.async {
completion(SetupResult(storage))
completion(.success(storage))
}
}
catch {
completion(SetupResult(error))
completion(.failure(CoreStoreError(error)))
}
}
)
@@ -220,14 +220,14 @@ extension DataStack {
DispatchQueue.main.async {
completion(SetupResult(storage))
completion(.success(storage))
}
}
catch {
DispatchQueue.main.async {
completion(SetupResult(error))
completion(.failure(CoreStoreError(error)))
}
}
return nil
@@ -241,7 +241,7 @@ extension DataStack {
)
DispatchQueue.main.async {
completion(SetupResult(storeError))
completion(.failure(storeError))
}
return nil
}
@@ -284,7 +284,7 @@ extension DataStack {
DispatchQueue.main.async {
completion(SetupResult(storage))
completion(.success(storage))
}
return
}
@@ -296,7 +296,7 @@ extension DataStack {
DispatchQueue.main.async {
completion(SetupResult(existingStorage))
completion(.success(existingStorage))
}
return
}
@@ -308,7 +308,7 @@ extension DataStack {
)
DispatchQueue.main.async {
completion(SetupResult(error))
completion(.failure(error))
}
return
}
@@ -328,7 +328,7 @@ extension DataStack {
)
DispatchQueue.main.async {
completion(SetupResult(storage))
completion(.success(storage))
}
}
catch let error as NSError where storage.cloudStorageOptions.contains(.recreateLocalStoreOnModelMismatch) && error.isCoreDataMigrationError {
@@ -358,14 +358,14 @@ extension DataStack {
DispatchQueue.main.async {
completion(SetupResult(storage))
completion(.success(storage))
}
}
catch {
DispatchQueue.main.async {
completion(SetupResult(error))
completion(.failure(CoreStoreError(error)))
}
}
}
@@ -378,7 +378,7 @@ extension DataStack {
)
DispatchQueue.main.async {
completion(SetupResult(storeError))
completion(.failure(storeError))
}
}
}
@@ -514,7 +514,7 @@ extension DataStack {
DispatchQueue.main.async {
completion(MigrationResult(error))
completion(.failure(error))
}
return nil
}
@@ -524,7 +524,7 @@ extension DataStack {
DispatchQueue.main.async {
completion(MigrationResult([]))
completion(.success([]))
return
}
return nil
@@ -538,7 +538,7 @@ extension DataStack {
)
DispatchQueue.main.async {
completion(MigrationResult(error))
completion(.failure(error))
}
return nil
}
@@ -586,7 +586,7 @@ extension DataStack {
migrationError,
"Failed to migrate version model \"\(migrationType.sourceVersion)\" to version \"\(migrationType.destinationVersion)\"."
)
migrationResult = MigrationResult(migrationError)
migrationResult = .failure(migrationError)
cancelled = true
}
}
@@ -609,7 +609,7 @@ extension DataStack {
DispatchQueue.main.async {
progress.setProgressHandler(nil)
completion(migrationResult ?? MigrationResult(migrationTypes))
completion(migrationResult ?? .success(migrationTypes))
return
}
}

View File

@@ -507,13 +507,4 @@ extension DataStack: FetchableSource, QueryableSource {
return self.mainContext
}
// MARK: Obsoleted
@available(swift, obsoleted: 3.1, renamed: "unsafeContext()")
public func internalContext() -> NSManagedObjectContext {
fatalError()
}
}

View File

@@ -32,7 +32,7 @@ import CoreData
extension DataStack {
/**
Performs a transaction asynchronously where `NSManagedObject` or `CoreStoreObject` creates, updates, and deletes can be made. The changes are commited automatically after the `task` closure returns. On success, the value returned from closure will be the wrapped as `.success(userInfo: T)` in the `completion`'s `Result<T>`. Any errors thrown from inside the `task` will be reported as `.failure(error: CoreStoreError)`. To cancel/rollback changes, call `try transaction.cancel()`, which throws a `CoreStoreError.userCancelled`.
Performs a transaction asynchronously where `NSManagedObject` or `CoreStoreObject` creates, updates, and deletes can be made. The changes are commited automatically after the `task` closure returns. On success, the value returned from closure will be the wrapped as `.success(T)` in the `completion`'s `Result<T>`. Any errors thrown from inside the `task` will be reported as `.failure(CoreStoreError)`. To cancel/rollback changes, call `try transaction.cancel()`, which throws a `CoreStoreError.userCancelled`.
- parameter task: the asynchronous closure where creates, updates, and deletes can be made to the transaction. Transaction blocks are executed serially in a background queue, and all changes are made from a concurrent `NSManagedObjectContext`.
- parameter completion: the closure executed after the save completes. The `Result` argument of the closure will either wrap the return value of `task`, or any uncaught errors thrown from within `task`. Cancelled `task`s will be indicated by `.failure(error: CoreStoreError.userCancelled)`. Custom errors thrown by the user will be wrapped in `CoreStoreError.userError(error: Error)`.
@@ -41,8 +41,8 @@ extension DataStack {
self.perform(
asynchronous: task,
success: { completion(.init(userInfo: $0)) },
failure: { completion(.init(error: $0)) }
success: { completion(.success($0)) },
failure: { completion(.failure($0)) }
)
}
@@ -164,56 +164,4 @@ extension DataStack {
)
self.mainContext.refreshAndMergeAllObjects()
}
// MARK: Deprecated
@available(*, deprecated, message: "Use the new auto-commiting methods `perform(asynchronous:completion:)` or `perform(asynchronous:success:failure:)`. Please read the documentation on the behavior of the new methods.")
public func beginAsynchronous(_ closure: @escaping (_ transaction: AsynchronousDataTransaction) -> Void) {
let transaction = AsynchronousDataTransaction(
mainContext: self.rootSavingContext,
queue: self.childTransactionQueue
)
transaction.transactionQueue.cs_async {
closure(transaction)
if !transaction.isCommitted && transaction.hasChanges {
CoreStore.log(
.warning,
message: "The closure for the \(cs_typeName(transaction)) completed without being committed. All changes made within the transaction were discarded."
)
}
}
}
@available(*, deprecated, message: "Use the new auto-commiting method `perform(synchronous:)`. Please read the documentation on the behavior of the new methods.")
@discardableResult
public func beginSynchronous(_ closure: @escaping (_ transaction: SynchronousDataTransaction) -> Void) -> SaveResult? {
let transaction = SynchronousDataTransaction(
mainContext: self.rootSavingContext,
queue: self.childTransactionQueue
)
transaction.transactionQueue.cs_sync {
closure(transaction)
if !transaction.isCommitted && transaction.hasChanges {
CoreStore.log(
.warning,
message: "The closure for the \(cs_typeName(transaction)) completed without being committed. All changes made within the transaction were discarded."
)
}
}
switch transaction.result {
case .none: return nil
case .some(let hasChanges, nil): return SaveResult(hasChanges: hasChanges)
case .some(_, let error?): return SaveResult(error)
}
}
}

View File

@@ -614,57 +614,4 @@ public final class DataStack: Equatable {
}
}
}
// MARK: Deprecated
@available(*, deprecated, renamed: "init(xcodeModelName:bundle:migrationChain:)")
public convenience init(modelName: XcodeDataModelFileName, bundle: Bundle = Bundle.main, migrationChain: MigrationChain = nil) {
self.init(
xcodeModelName: modelName,
bundle: bundle,
migrationChain: migrationChain
)
}
@available(*, deprecated, message: "Use the new DataStack.init(schemaHistory:) initializer passing an UnsafeDataModelSchema instance as argument")
public convenience init(model: NSManagedObjectModel, migrationChain: MigrationChain = nil) {
let modelVersion = migrationChain.leafVersions.first!
self.init(
schemaHistory: SchemaHistory(
allSchema: [
UnsafeDataModelSchema(
modelName: modelVersion,
model: model
)
],
migrationChain: migrationChain,
exactCurrentModelVersion: modelVersion
)
)
}
@available(*, deprecated, message: "Use the new DataStack.entityTypesByName(for:) method passing `NSManagedObject.self` as argument.")
public var entityTypesByName: [EntityName: NSManagedObject.Type] {
return self.entityTypesByName(for: NSManagedObject.self)
}
// MARK: Obsolete
@available(swift, obsoleted: 3.1, renamed: "entityDescription(for:)")
public func entityDescriptionForType(_ type: NSManagedObject.Type) -> NSEntityDescription? {
return self.entityDescription(for: type)
}
@available(swift, obsoleted: 3.1, renamed: "objectID(forURIRepresentation:)")
public func objectIDForURIRepresentation(_ url: URL) -> NSManagedObjectID? {
return self.objectID(forURIRepresentation: url)
}
}

View File

@@ -154,7 +154,7 @@ extension DynamicSchema {
if let defaultValue = (attribute.defaultValue as! Data.QueryableNativeType?).flatMap(Data.cs_fromQueryableNativeType) {
let count = defaultValue.count
let bytes = defaultValue.withUnsafeBytes { (pointer: UnsafePointer<UInt8>) in
let bytes = defaultValue.withUnsafeBytes { (pointer) in
return (0 ..< (count / MemoryLayout<UInt8>.size))
.map({ "\("0x\(String(pointer[$0], radix: 16, uppercase: false))")" })

View File

@@ -100,8 +100,7 @@ public final class Entity<O: CoreStoreObject>: DynamicEntity {
entityName,
isAbstract: isAbstract,
versionHashModifier: versionHashModifier,
indexes: indexes,
uniqueConstraints: []
indexes: indexes
)
}

View File

@@ -86,6 +86,14 @@ internal final class FetchedResultsControllerDelegate: NSObject, NSFetchedResult
return
}
if #available(iOS 10.3, tvOS 10.3, watchOS 3.2, macOS 10.13, *) {}
else {
self.deletedSections = []
self.insertedSections = []
}
self.handler?.controllerWillChangeContent(controller)
}
@@ -100,6 +108,7 @@ internal final class FetchedResultsControllerDelegate: NSObject, NSFetchedResult
return
}
self.handler?.controllerDidChangeContent(controller)
}
@@ -110,11 +119,102 @@ internal final class FetchedResultsControllerDelegate: NSObject, NSFetchedResult
return
}
if #available(iOS 10.3, tvOS 10.3, watchOS 3.2, macOS 10.13, *) {
self.handler?.controller(
controller,
didChangeObject: anObject,
atIndexPath: indexPath,
forChangeType: type,
newIndexPath: newIndexPath
)
return
}
guard var actualType = NSFetchedResultsChangeType(rawValue: type.rawValue) else {
// This fix is for a bug where iOS passes 0 for NSFetchedResultsChangeType, but this is not a valid enum case.
// Swift will then always execute the first case of the switch causing strange behaviour.
// https://forums.developer.apple.com/thread/12184#31850
return
}
// This whole dance is a workaround for a nasty bug introduced in XCode 7 targeted at iOS 8 devices
// http://stackoverflow.com/questions/31383760/ios-9-attempt-to-delete-and-reload-the-same-index-path/31384014#31384014
// https://forums.developer.apple.com/message/9998#9998
// https://forums.developer.apple.com/message/31849#31849
if case .update = actualType,
indexPath != nil,
newIndexPath != nil {
actualType = .move
}
switch actualType {
case .update:
guard let section = indexPath?[0] else {
return
}
if self.deletedSections.contains(section)
|| self.insertedSections.contains(section) {
return
}
case .move:
guard let indexPath = indexPath, let newIndexPath = newIndexPath else {
return
}
guard indexPath == newIndexPath else {
break
}
if self.insertedSections.contains(indexPath[0]) {
// Observers that handle the .Move change are advised to delete then reinsert the object instead of just moving. This is especially true when indexPath and newIndexPath are equal. For example, calling tableView.moveRowAtIndexPath(_:toIndexPath) when both indexPaths are the same will crash the tableView.
self.handler?.controller(
controller,
didChangeObject: anObject,
atIndexPath: indexPath,
forChangeType: .move,
newIndexPath: newIndexPath
)
return
}
if self.deletedSections.contains(indexPath[0]) {
self.handler?.controller(
controller,
didChangeObject: anObject,
atIndexPath: nil,
forChangeType: .insert,
newIndexPath: indexPath
)
return
}
self.handler?.controller(
controller,
didChangeObject: anObject,
atIndexPath: indexPath,
forChangeType: .update,
newIndexPath: nil
)
return
default:
break
}
self.handler?.controller(
controller,
didChangeObject: anObject,
atIndexPath: indexPath,
forChangeType: type,
forChangeType: actualType,
newIndexPath: newIndexPath
)
}
@@ -126,6 +226,18 @@ internal final class FetchedResultsControllerDelegate: NSObject, NSFetchedResult
return
}
if #available(iOS 10.3, tvOS 10.3, watchOS 3.2, macOS 10.13, *) {}
else {
switch type {
case .delete: self.deletedSections.insert(sectionIndex)
case .insert: self.insertedSections.insert(sectionIndex)
default: break
}
}
self.handler?.controller(
controller,
didChangeSection: sectionInfo,
@@ -142,4 +254,13 @@ internal final class FetchedResultsControllerDelegate: NSObject, NSFetchedResult
sectionIndexTitleForSectionName: sectionName
)
}
// MARK: Private
@nonobjc
private var deletedSections = Set<Int>()
@nonobjc
private var insertedSections = Set<Int>()
}

View File

@@ -139,7 +139,7 @@ public struct From<D: DynamicObject> {
self.findPersistentStores = findPersistentStores
}
internal func applyToFetchRequest<U>(_ fetchRequest: NSFetchRequest<U>, context: NSManagedObjectContext, applyAffectedStores: Bool = true) throws {
internal func applyToFetchRequest<U>(_ fetchRequest: CoreStoreFetchRequest<U>, context: NSManagedObjectContext, applyAffectedStores: Bool = true) throws {
fetchRequest.entity = context.parentStack!.entityDescription(for: EntityIdentifier(self.entityClass))!
guard applyAffectedStores else {
@@ -164,7 +164,7 @@ public struct From<D: DynamicObject> {
}
}
internal func applyAffectedStoresForFetchedRequest<U>(_ fetchRequest: NSFetchRequest<U>, context: NSManagedObjectContext) throws {
internal func applyAffectedStoresForFetchedRequest<U>(_ fetchRequest: CoreStoreFetchRequest<U>, context: NSManagedObjectContext) throws {
let stores = self.findPersistentStores(context)
fetchRequest.affectedStores = stores

View File

@@ -1,569 +0,0 @@
//
// ICloudStore.swift
// CoreStore
//
// Copyright © 2018 John Rommel Estropia
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
import Foundation
import CoreData
#if os(iOS) || os(macOS)
// MARK: - ICloudStore
/**
A storage interface backed by an SQLite database managed by iCloud.
*/
@available(*, deprecated, message: "Please see the release notes and Core Data documentation.")
public final class ICloudStore: CloudStorage, CustomDebugStringConvertible, CoreStoreDebugStringConvertible {
/**
Initializes an iCloud store interface from the given ubiquitous store information. Returns `nil` if the container could not be located or if iCloud storage is unavailable for the current user or device
```
guard let storage = ICloudStore(
ubiquitousContentName: "MyAppCloudData",
ubiquitousContentTransactionLogsSubdirectory: "logs/config1",
ubiquitousContainerID: "iCloud.com.mycompany.myapp.containername",
ubiquitousPeerToken: "9614d658014f4151a95d8048fb717cf0",
configuration: "Config1",
cloudStorageOptions: .recreateLocalStoreOnModelMismatch
) else {
// iCloud is not available on the device
return
}
CoreStore.addStorage(
storage,
completion: { result in
// ...
}
)
```
- parameter ubiquitousContentName: the name of the store in iCloud. This is required and should not be empty, and should not contain periods (`.`).
- parameter ubiquitousContentTransactionLogsSubdirectory: a required relative path for the transaction logs
- parameter ubiquitousContainerID: a container if your app has multiple ubiquity container identifiers in its entitlements
- parameter ubiquitousPeerToken: a per-application salt to allow multiple apps on the same device to share a Core Data store integrated with iCloud
- parameter configuration: an optional configuration name from the model file. If not specified, defaults to `nil`, the "Default" configuration. Note that if you have multiple configurations, you will need to specify a different `ubiquitousContentName` explicitly for each of them.
- parameter cloudStorageOptions: When the `ICloudStore` is passed to the `DataStack`'s `addStorage()` methods, tells the `DataStack` how to setup the persistent store. Defaults to `.None`.
*/
public required init?(ubiquitousContentName: String, ubiquitousContentTransactionLogsSubdirectory: String, ubiquitousContainerID: String? = nil, ubiquitousPeerToken: String? = nil, configuration: ModelConfiguration = nil, cloudStorageOptions: CloudStorageOptions = nil) {
CoreStore.assert(
!ubiquitousContentName.isEmpty,
"The ubiquitousContentName cannot be empty."
)
CoreStore.assert(
!ubiquitousContentName.contains("."),
"The ubiquitousContentName cannot contain periods."
)
CoreStore.assert(
!ubiquitousContentTransactionLogsSubdirectory.isEmpty,
"The ubiquitousContentURLRelativePath should not be empty."
)
CoreStore.assert(
ubiquitousPeerToken?.isEmpty != true,
"The ubiquitousPeerToken should not be empty if provided."
)
let fileManager = FileManager.default
guard let cacheFolderURL = fileManager.url(forUbiquityContainerIdentifier: ubiquitousContainerID) else {
return nil
}
let cacheFileURL = cacheFolderURL.appendingPathComponent(ubiquitousContentTransactionLogsSubdirectory)
var storeOptions: [String: Any] = [
NSSQLitePragmasOption: ["journal_mode": "WAL"],
NSPersistentStoreUbiquitousContentNameKey: ubiquitousContentName
]
storeOptions[NSPersistentStoreUbiquitousContentURLKey] = ubiquitousContentTransactionLogsSubdirectory
storeOptions[NSPersistentStoreUbiquitousContainerIdentifierKey] = ubiquitousContainerID
storeOptions[NSPersistentStoreUbiquitousPeerTokenOption] = ubiquitousPeerToken
self.cacheFileURL = cacheFileURL
self.configuration = configuration
self.cloudStorageOptions = cloudStorageOptions
self.storeOptions = storeOptions
}
/**
Registers an `ICloudStoreObserver` to start receive notifications from the ubiquitous store
- parameter observer: the observer to start sending ubiquitous notifications to
*/
public func addObserver<T: ICloudStoreObserver>(_ observer: T) {
CoreStore.assert(
Thread.isMainThread,
"Attempted to add an observer of type \(cs_typeName(observer)) outside the main thread."
)
self.removeObserver(observer)
self.registerNotification(
&self.willFinishInitialImportKey,
name: Notification.Name.iCloudUbiquitousStoreWillFinishInitialImport,
toObserver: observer,
callback: { (observer, storage, dataStack) in
observer.iCloudStoreWillFinishUbiquitousStoreInitialImport(storage: storage, dataStack: dataStack)
}
)
self.registerNotification(
&self.didFinishInitialImportKey,
name: Notification.Name.iCloudUbiquitousStoreDidFinishInitialImport,
toObserver: observer,
callback: { (observer, storage, dataStack) in
observer.iCloudStoreDidFinishUbiquitousStoreInitialImport(storage: storage, dataStack: dataStack)
}
)
self.registerNotification(
&self.willAddAccountKey,
name: Notification.Name.iCloudUbiquitousStoreWillAddAccount,
toObserver: observer,
callback: { (observer, storage, dataStack) in
observer.iCloudStoreWillAddAccount(storage: storage, dataStack: dataStack)
}
)
self.registerNotification(
&self.didAddAccountKey,
name: Notification.Name.iCloudUbiquitousStoreDidAddAccount,
toObserver: observer,
callback: { (observer, storage, dataStack) in
observer.iCloudStoreDidAddAccount(storage: storage, dataStack: dataStack)
}
)
self.registerNotification(
&self.willRemoveAccountKey,
name: Notification.Name.iCloudUbiquitousStoreWillRemoveAccount,
toObserver: observer,
callback: { (observer, storage, dataStack) in
observer.iCloudStoreWillRemoveAccount(storage: storage, dataStack: dataStack)
}
)
self.registerNotification(
&self.didRemoveAccountKey,
name: Notification.Name.iCloudUbiquitousStoreDidRemoveAccount,
toObserver: observer,
callback: { (observer, storage, dataStack) in
observer.iCloudStoreDidRemoveAccount(storage: storage, dataStack: dataStack)
}
)
self.registerNotification(
&self.willRemoveContentKey,
name: Notification.Name.iCloudUbiquitousStoreWillRemoveContent,
toObserver: observer,
callback: { (observer, storage, dataStack) in
observer.iCloudStoreWillRemoveContent(storage: storage, dataStack: dataStack)
}
)
self.registerNotification(
&self.didRemoveContentKey,
name: Notification.Name.iCloudUbiquitousStoreDidRemoveContent,
toObserver: observer,
callback: { (observer, storage, dataStack) in
observer.iCloudStoreDidRemoveContent(storage: storage, dataStack: dataStack)
}
)
}
/**
Unregisters an `ICloudStoreObserver` to stop receiving notifications from the ubiquitous store
- parameter observer: the observer to stop sending ubiquitous notifications to
*/
public func removeObserver(_ observer: ICloudStoreObserver) {
CoreStore.assert(
Thread.isMainThread,
"Attempted to remove an observer of type \(cs_typeName(observer)) outside the main thread."
)
let nilValue: AnyObject? = nil
cs_setAssociatedRetainedObject(
nilValue,
forKey: &self.willFinishInitialImportKey,
inObject: observer
)
cs_setAssociatedRetainedObject(
nilValue,
forKey: &self.didFinishInitialImportKey,
inObject: observer
)
cs_setAssociatedRetainedObject(
nilValue,
forKey: &self.willAddAccountKey,
inObject: observer
)
cs_setAssociatedRetainedObject(
nilValue,
forKey: &self.didAddAccountKey,
inObject: observer
)
cs_setAssociatedRetainedObject(
nilValue,
forKey: &self.willRemoveAccountKey,
inObject: observer
)
cs_setAssociatedRetainedObject(
nilValue,
forKey: &self.didRemoveAccountKey,
inObject: observer
)
cs_setAssociatedRetainedObject(
nilValue,
forKey: &self.willRemoveContentKey,
inObject: observer
)
cs_setAssociatedRetainedObject(
nilValue,
forKey: &self.didRemoveContentKey,
inObject: observer
)
}
// MARK: StorageInterface
/**
The string identifier for the `NSPersistentStore`'s `type` property. For `SQLiteStore`s, this is always set to `NSSQLiteStoreType`.
*/
public static let storeType = NSSQLiteStoreType
/**
The configuration name in the model file
*/
public let configuration: ModelConfiguration
/**
The options dictionary for the `NSPersistentStore`. For `SQLiteStore`s, this is always set to
```
[NSSQLitePragmasOption: ["journal_mode": "WAL"]]
```
*/
public let storeOptions: [AnyHashable: Any]?
/**
Do not call directly. Used by the `DataStack` internally.
*/
public func cs_didAddToDataStack(_ dataStack: DataStack) {
self.cs_didRemoveFromDataStack(dataStack)
self.dataStack = dataStack
let coordinator = dataStack.coordinator
cs_setAssociatedRetainedObject(
NotificationObserver(
notificationName: Notification.Name.NSPersistentStoreCoordinatorStoresWillChange,
object: coordinator,
closure: { [weak self, weak dataStack] (note) -> Void in
guard let `self` = self,
let dataStack = dataStack,
let userInfo = note.userInfo,
let transitionType = userInfo[NSPersistentStoreUbiquitousTransitionTypeKey] as? NSNumber else {
return
}
let notification: Notification.Name
switch NSPersistentStoreUbiquitousTransitionType(rawValue: transitionType.uintValue) {
case .initialImportCompleted?:
notification = Notification.Name.iCloudUbiquitousStoreWillFinishInitialImport
case .accountAdded?:
notification = Notification.Name.iCloudUbiquitousStoreWillAddAccount
case .accountRemoved?:
notification = Notification.Name.iCloudUbiquitousStoreWillRemoveAccount
case .contentRemoved?:
notification = Notification.Name.iCloudUbiquitousStoreWillRemoveContent
default:
return
}
NotificationCenter.default.post(
name: notification,
object: self,
userInfo: [String(describing: DataStack.self): dataStack]
)
}
),
forKey: &Static.persistentStoreCoordinatorWillChangeStores,
inObject: self
)
cs_setAssociatedRetainedObject(
NotificationObserver(
notificationName: NSNotification.Name.NSPersistentStoreCoordinatorStoresDidChange,
object: coordinator,
closure: { [weak self, weak dataStack] (note) -> Void in
guard let `self` = self,
let dataStack = dataStack,
let userInfo = note.userInfo,
let transitionType = userInfo[NSPersistentStoreUbiquitousTransitionTypeKey] as? NSNumber else {
return
}
let notification: Notification.Name
switch NSPersistentStoreUbiquitousTransitionType(rawValue: transitionType.uintValue) {
case .initialImportCompleted?:
notification = Notification.Name.iCloudUbiquitousStoreDidFinishInitialImport
case .accountAdded?:
notification = Notification.Name.iCloudUbiquitousStoreDidAddAccount
case .accountRemoved?:
notification = Notification.Name.iCloudUbiquitousStoreDidRemoveAccount
case .contentRemoved?:
notification = Notification.Name.iCloudUbiquitousStoreDidRemoveContent
default:
return
}
NotificationCenter.default.post(
name: notification,
object: self,
userInfo: [String(describing: DataStack.self): dataStack]
)
}
),
forKey: &Static.persistentStoreCoordinatorDidChangeStores,
inObject: self
)
}
/**
Do not call directly. Used by the `DataStack` internally.
*/
public func cs_didRemoveFromDataStack(_ dataStack: DataStack) {
let coordinator = dataStack.coordinator
let nilValue: AnyObject? = nil
cs_setAssociatedRetainedObject(
nilValue,
forKey: &Static.persistentStoreCoordinatorWillChangeStores,
inObject: coordinator
)
cs_setAssociatedRetainedObject(
nilValue,
forKey: &Static.persistentStoreCoordinatorDidChangeStores,
inObject: coordinator
)
self.dataStack = nil
}
// MARK: CloudStorage
/**
The `NSURL` that points to the ubiquity container file
*/
public let cacheFileURL: URL
/**
Options that tell the `DataStack` how to setup the persistent store
*/
public var cloudStorageOptions: CloudStorageOptions
/**
The options dictionary for the specified `CloudStorageOptions`
*/
public func dictionary(forOptions options: CloudStorageOptions) -> [AnyHashable: Any]? {
if options == .none {
return self.storeOptions
}
var storeOptions = self.storeOptions ?? [:]
if options.contains(.allowSynchronousLightweightMigration) {
storeOptions[NSMigratePersistentStoresAutomaticallyOption] = true
storeOptions[NSInferMappingModelAutomaticallyOption] = true
}
if options.contains(.recreateLocalStoreOnModelMismatch) {
storeOptions[NSPersistentStoreRebuildFromUbiquitousContentOption] = true
}
return storeOptions
}
/**
Called by the `DataStack` to perform actual deletion of the store file from disk. Do not call directly! The `sourceModel` argument is a hint for the existing store's model version. For `SQLiteStore`, this converts the database's WAL journaling mode to DELETE before deleting the file.
*/
public func cs_eraseStorageAndWait(soureModel: NSManagedObjectModel) throws {
let cacheFileURL = self.cacheFileURL
try autoreleasepool {
let journalUpdatingCoordinator = NSPersistentStoreCoordinator(managedObjectModel: soureModel)
let options = [
NSSQLitePragmasOption: ["journal_mode": "DELETE"],
NSPersistentStoreRemoveUbiquitousMetadataOption: true
] as [String : Any]
let store = try journalUpdatingCoordinator.addPersistentStore(
ofType: type(of: self).storeType,
configurationName: self.configuration,
at: cacheFileURL,
options: options
)
try journalUpdatingCoordinator.remove(store)
try NSPersistentStoreCoordinator.removeUbiquitousContentAndPersistentStore(
at: cacheFileURL,
options: options
)
}
}
// MARK: CustomDebugStringConvertible
public var debugDescription: String {
func formattedValue(_ any: Any) -> String {
switch any {
case let any as CoreStoreDebugStringConvertible:
return any.coreStoreDumpString
default:
return "\(any)"
}
}
var string = "(\(String(reflecting: type(of: self)))) "
string.append(formattedValue(self))
return string
}
// MARK: CoreStoreDebugStringConvertible
public var coreStoreDumpString: String {
func formattedValue(_ any: Any) -> String {
switch any {
case let any as CoreStoreDebugStringConvertible:
return any.coreStoreDumpString
default:
return "\(any)"
}
}
func createFormattedString(_ firstLine: String, _ lastLine: String, _ info: [(key: String, value: Any)]) -> String {
var string = firstLine
for (key, value) in info {
string.append("\n.\(key) = \(formattedValue(value));")
}
string = string.replacingOccurrences(of: "\n", with: "\n\(String(repeating: " ", count: 4))")
string.append("\n\(lastLine)")
return string
}
return createFormattedString(
"(", ")",
[
("configuration", self.configuration as Any),
("storeOptions", self.storeOptions as Any),
("cacheFileURL", self.cacheFileURL),
("cloudStorageOptions", self.cloudStorageOptions)
]
)
}
// MARK: Private
fileprivate struct Static {
fileprivate static var persistentStoreCoordinatorWillChangeStores: Void?
fileprivate static var persistentStoreCoordinatorDidChangeStores: Void?
}
private var willFinishInitialImportKey: Void?
private var didFinishInitialImportKey: Void?
private var willAddAccountKey: Void?
private var didAddAccountKey: Void?
private var willRemoveAccountKey: Void?
private var didRemoveAccountKey: Void?
private var willRemoveContentKey: Void?
private var didRemoveContentKey: Void?
private weak var dataStack: DataStack?
private func registerNotification<T: ICloudStoreObserver>(_ notificationKey: UnsafeRawPointer, name: Notification.Name, toObserver observer: T, callback: @escaping (_ observer: T, _ storage: ICloudStore, _ dataStack: DataStack) -> Void) {
cs_setAssociatedRetainedObject(
NotificationObserver(
notificationName: name,
object: self,
closure: { [weak self, weak observer] (note) -> Void in
guard let `self` = self,
let observer = observer,
let dataStack = note.userInfo?[String(describing: DataStack.self)] as? DataStack,
self.dataStack === dataStack else {
return
}
callback(observer, self, dataStack)
}
),
forKey: notificationKey,
inObject: observer
)
}
}
// MARK: - Notification Keys
extension Notification.Name {
fileprivate static let iCloudUbiquitousStoreWillFinishInitialImport = Notification.Name(rawValue: "iCloudUbiquitousStoreWillFinishInitialImport")
fileprivate static let iCloudUbiquitousStoreDidFinishInitialImport = Notification.Name(rawValue: "iCloudUbiquitousStoreDidFinishInitialImport")
fileprivate static let iCloudUbiquitousStoreWillAddAccount = Notification.Name(rawValue: "iCloudUbiquitousStoreWillAddAccount")
fileprivate static let iCloudUbiquitousStoreDidAddAccount = Notification.Name(rawValue: "iCloudUbiquitousStoreDidAddAccount")
fileprivate static let iCloudUbiquitousStoreWillRemoveAccount = Notification.Name(rawValue: "iCloudUbiquitousStoreWillRemoveAccount")
fileprivate static let iCloudUbiquitousStoreDidRemoveAccount = Notification.Name(rawValue: "iCloudUbiquitousStoreDidRemoveAccount")
fileprivate static let iCloudUbiquitousStoreWillRemoveContent = Notification.Name(rawValue: "iCloudUbiquitousStoreWillRemoveContent")
fileprivate static let iCloudUbiquitousStoreDidRemoveContent = Notification.Name(rawValue: "iCloudUbiquitousStoreDidRemoveContent")
}
#endif

View File

@@ -1,108 +0,0 @@
//
// ICloudStoreObserver.swift
// CoreStore
//
// Copyright © 2018 John Rommel Estropia
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
import Foundation
#if os(iOS) || os(macOS)
// MARK: - ICloudStoreObserver
/**
Implement the `ICloudStoreObserver` protocol to observe ubiquitous storage notifications from the specified iCloud store.
Note that `ICloudStoreObserver` methods are only called when all the following conditions are true:
- the observer is registered to the `ICloudStore` via the `ICloudStore.addObserver(_:)` method
- the `ICloudStore` was added to a `DataStack`
- the `ICloudStore` and the `DataStack` are still persisted in memory
*/
@available(*, deprecated, message: "Please see the release notes and Core Data documentation.")
public protocol ICloudStoreObserver: class {
/**
Notifies that the initial ubiquitous store import will complete
- parameter storage: the `ICloudStore` instance being observed
- parameter dataStack: the `DataStack` that manages the peristent store
*/
func iCloudStoreWillFinishUbiquitousStoreInitialImport(storage: ICloudStore, dataStack: DataStack)
/**
Notifies that the initial ubiquitous store import completed
- parameter storage: the `ICloudStore` instance being observed
- parameter dataStack: the `DataStack` that manages the peristent store
*/
func iCloudStoreDidFinishUbiquitousStoreInitialImport(storage: ICloudStore, dataStack: DataStack)
/**
Notifies that an iCloud account will be added to the coordinator
- parameter storage: the `ICloudStore` instance being observed
- parameter dataStack: the `DataStack` that manages the peristent store
*/
func iCloudStoreWillAddAccount(storage: ICloudStore, dataStack: DataStack)
/**
Notifies that an iCloud account was added to the coordinator
- parameter storage: the `ICloudStore` instance being observed
- parameter dataStack: the `DataStack` that manages the peristent store
*/
func iCloudStoreDidAddAccount(storage: ICloudStore, dataStack: DataStack)
/**
Notifies that an iCloud account will be removed from the coordinator
- parameter storage: the `ICloudStore` instance being observed
- parameter dataStack: the `DataStack` that manages the peristent store
*/
func iCloudStoreWillRemoveAccount(storage: ICloudStore, dataStack: DataStack)
/**
Notifies that an iCloud account was removed from the coordinator
- parameter storage: the `ICloudStore` instance being observed
- parameter dataStack: the `DataStack` that manages the peristent store
*/
func iCloudStoreDidRemoveAccount(storage: ICloudStore, dataStack: DataStack)
/**
Notifies that iCloud contents will be deleted
- parameter storage: the `ICloudStore` instance being observed
- parameter dataStack: the `DataStack` that manages the peristent store
*/
func iCloudStoreWillRemoveContent(storage: ICloudStore, dataStack: DataStack)
/**
Notifies that iCloud contents were deleted
- parameter storage: the `ICloudStore` instance being observed
- parameter dataStack: the `DataStack` that manages the peristent store
*/
func iCloudStoreDidRemoveContent(storage: ICloudStore, dataStack: DataStack)
}
#endif

View File

@@ -86,19 +86,4 @@ extension ImportableObject {
return true
}
// MARK: Obsolete
@available(swift, obsoleted: 3.0.0, renamed: "shouldInsert(from:in:)")
public static func shouldInsertFromImportSource(_ source: ImportSource, inTransaction transaction: BaseDataTransaction) -> Bool {
return Self.shouldInsert(from: source, in: transaction)
}
@available(swift, obsoleted: 3.0.0, renamed: "didInsert(from:in:)")
public func didInsertFromImportSource(_ source: ImportSource, inTransaction transaction: BaseDataTransaction) throws {
try self.didInsert(from: source, in: transaction)
}
}

View File

@@ -160,37 +160,4 @@ extension ImportableUniqueObject {
try self.update(from: source, in: transaction)
}
// MARK: Obsolete
@available(swift, obsoleted: 3.1, renamed: "shouldInsert(from:in:)")
public static func shouldInsertFromImportSource(_ source: ImportSource, inTransaction transaction: BaseDataTransaction) -> Bool {
return Self.shouldInsert(from: source, in: transaction)
}
@available(swift, obsoleted: 3.1, renamed: "shouldUpdate(from:in:)")
public static func shouldUpdateFromImportSource(_ source: ImportSource, inTransaction transaction: BaseDataTransaction) -> Bool {
return Self.shouldUpdate(from: source, in: transaction)
}
@available(swift, obsoleted: 3.1, renamed: "uniqueID(from:in:)")
public static func uniqueIDFromImportSource(_ source: ImportSource, inTransaction transaction: BaseDataTransaction) throws -> UniqueIDType? {
return try Self.uniqueID(from: source, in: transaction)
}
@available(swift, obsoleted: 3.1, renamed: "didInsert(from:in:)")
public func didInsertFromImportSource(_ source: ImportSource, inTransaction transaction: BaseDataTransaction) throws {
try self.didInsert(from: source, in: transaction)
}
@available(swift, obsoleted: 3.1, renamed: "update(from:in:)")
public func updateFromImportSource(_ source: ImportSource, inTransaction transaction: BaseDataTransaction) throws {
try self.update(from: source, in: transaction)
}
}

View File

@@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>6.0.0</string>
<string>6.3.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>

View File

@@ -1,103 +0,0 @@
//
// LegacySQLiteStore.swift
// CoreStore
//
// Copyright © 2018 John Rommel Estropia
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
import Foundation
import CoreData
// MARK: - LegacySQLiteStore
/**
A storage interface backed by an SQLite database that was created before CoreStore 2.0.0.
*/
@available(swift, obsoleted: 3.1, message: "`LegacySQLiteStore` previous users should now use `SQLiteStore`'s new SQLiteStore.legacy(fileName:configuration:migrationMappingProviders:localStorageOptions:) or SQLiteStore.legacy() methods to create an `SQLiteStore` with legacy paths.")
public final class LegacySQLiteStore: LocalStorage {
@available(swift, obsoleted: 3.1, message: "Use `SQLiteStore`'s new SQLiteStore.init(fileURL:configuration:migrationMappingProviders:localStorageOptions:) initializer.")
public init(fileURL: URL, configuration: ModelConfiguration = nil, mappingModelBundles: [Bundle] = Bundle.allBundles, localStorageOptions: LocalStorageOptions = nil) {
fatalError()
}
@available(swift, obsoleted: 3.1, message: "Use `SQLiteStore`'s new SQLiteStore.legacy(fileName:configuration:migrationMappingProviders:localStorageOptions:) factory method.")
public init(fileName: String, configuration: ModelConfiguration = nil, mappingModelBundles: [Bundle] = Bundle.allBundles, localStorageOptions: LocalStorageOptions = nil) {
fatalError()
}
@available(swift, obsoleted: 3.1, message: "Use `SQLiteStore`'s new SQLiteStore.legacy(...) factory method.")
public init() {
fatalError()
}
// MARK: StorageInterface
public static let storeType = NSSQLiteStoreType
public func dictionary(forOptions options: LocalStorageOptions) -> [AnyHashable: Any]? {
fatalError()
}
public let configuration: ModelConfiguration
public let storeOptions: [AnyHashable: Any]? = [NSSQLitePragmasOption: ["journal_mode": "WAL"]]
public func cs_didAddToDataStack(_ dataStack: DataStack) {
fatalError()
}
public func cs_didRemoveFromDataStack(_ dataStack: DataStack) {
fatalError()
}
// MAKR: LocalStorage
public let fileURL: URL
public let migrationMappingProviders: [SchemaMappingProvider]
public var localStorageOptions: LocalStorageOptions
public func cs_finalizeStorageAndWait(soureModelHint: NSManagedObjectModel) throws {
fatalError()
}
public func cs_eraseStorageAndWait(metadata: [String: Any], soureModelHint: NSManagedObjectModel?) throws {
fatalError()
}
// MARK: Private
private weak var dataStack: DataStack?
}

View File

@@ -628,7 +628,7 @@ public final class ListMonitor<D: DynamicObject>: Hashable {
// MARK: Internal
internal convenience init(dataStack: DataStack, from: From<ObjectType>, sectionBy: SectionBy<ObjectType>?, applyFetchClauses: @escaping (_ fetchRequest: NSFetchRequest<NSManagedObject>) -> Void) {
internal convenience init(dataStack: DataStack, from: From<ObjectType>, sectionBy: SectionBy<ObjectType>?, applyFetchClauses: @escaping (_ fetchRequest: CoreStoreFetchRequest<NSManagedObject>) -> Void) {
self.init(
context: dataStack.mainContext,
@@ -640,7 +640,7 @@ public final class ListMonitor<D: DynamicObject>: Hashable {
)
}
internal convenience init(dataStack: DataStack, from: From<ObjectType>, sectionBy: SectionBy<ObjectType>?, applyFetchClauses: @escaping (_ fetchRequest: NSFetchRequest<NSManagedObject>) -> Void, createAsynchronously: @escaping (ListMonitor<ObjectType>) -> Void) {
internal convenience init(dataStack: DataStack, from: From<ObjectType>, sectionBy: SectionBy<ObjectType>?, applyFetchClauses: @escaping (_ fetchRequest: CoreStoreFetchRequest<NSManagedObject>) -> Void, createAsynchronously: @escaping (ListMonitor<ObjectType>) -> Void) {
self.init(
context: dataStack.mainContext,
@@ -652,7 +652,7 @@ public final class ListMonitor<D: DynamicObject>: Hashable {
)
}
internal convenience init(unsafeTransaction: UnsafeDataTransaction, from: From<ObjectType>, sectionBy: SectionBy<ObjectType>?, applyFetchClauses: @escaping (_ fetchRequest: NSFetchRequest<NSManagedObject>) -> Void) {
internal convenience init(unsafeTransaction: UnsafeDataTransaction, from: From<ObjectType>, sectionBy: SectionBy<ObjectType>?, applyFetchClauses: @escaping (_ fetchRequest: CoreStoreFetchRequest<NSManagedObject>) -> Void) {
self.init(
context: unsafeTransaction.context,
@@ -664,7 +664,7 @@ public final class ListMonitor<D: DynamicObject>: Hashable {
)
}
internal convenience init(unsafeTransaction: UnsafeDataTransaction, from: From<ObjectType>, sectionBy: SectionBy<ObjectType>?, applyFetchClauses: @escaping (_ fetchRequest: NSFetchRequest<NSManagedObject>) -> Void, createAsynchronously: @escaping (ListMonitor<ObjectType>) -> Void) {
internal convenience init(unsafeTransaction: UnsafeDataTransaction, from: From<ObjectType>, sectionBy: SectionBy<ObjectType>?, applyFetchClauses: @escaping (_ fetchRequest: CoreStoreFetchRequest<NSManagedObject>) -> Void, createAsynchronously: @escaping (ListMonitor<ObjectType>) -> Void) {
self.init(
context: unsafeTransaction.context,
@@ -923,7 +923,7 @@ public final class ListMonitor<D: DynamicObject>: Hashable {
cs_setAssociatedRetainedObject(nilValue, forKey: &self.didDeleteSectionKey, inObject: observer)
}
internal func refetch(_ applyFetchClauses: @escaping (_ fetchRequest: NSFetchRequest<NSManagedObject>) -> Void) {
internal func refetch(_ applyFetchClauses: @escaping (_ fetchRequest: CoreStoreFetchRequest<NSManagedObject>) -> Void) {
CoreStore.assert(
Thread.isMainThread,
@@ -1022,7 +1022,7 @@ public final class ListMonitor<D: DynamicObject>: Hashable {
private var observerForWillChangePersistentStore: NotificationObserver!
private var observerForDidChangePersistentStore: NotificationObserver!
private let transactionQueue: DispatchQueue
private var applyFetchClauses: (_ fetchRequest: NSFetchRequest<NSManagedObject>) -> Void
private var applyFetchClauses: (_ fetchRequest: CoreStoreFetchRequest<NSManagedObject>) -> Void
private var isPersistentStoreChanging: Bool = false {
@@ -1045,9 +1045,9 @@ public final class ListMonitor<D: DynamicObject>: Hashable {
}
}
private static func recreateFetchedResultsController(context: NSManagedObjectContext, from: From<ObjectType>, sectionBy: SectionBy<ObjectType>?, applyFetchClauses: @escaping (_ fetchRequest: NSFetchRequest<NSManagedObject>) -> Void) -> (controller: CoreStoreFetchedResultsController, delegate: FetchedResultsControllerDelegate) {
private static func recreateFetchedResultsController(context: NSManagedObjectContext, from: From<ObjectType>, sectionBy: SectionBy<ObjectType>?, applyFetchClauses: @escaping (_ fetchRequest: CoreStoreFetchRequest<NSManagedObject>) -> Void) -> (controller: CoreStoreFetchedResultsController, delegate: FetchedResultsControllerDelegate) {
let fetchRequest = NSFetchRequest<NSManagedObject>()
let fetchRequest = CoreStoreFetchRequest<NSManagedObject>()
fetchRequest.fetchLimit = 0
fetchRequest.resultType = .managedObjectResultType
fetchRequest.fetchBatchSize = 20
@@ -1071,7 +1071,7 @@ public final class ListMonitor<D: DynamicObject>: Hashable {
private let from: From<ObjectType>
private let sectionBy: SectionBy<ObjectType>?
private init(context: NSManagedObjectContext, transactionQueue: DispatchQueue, from: From<ObjectType>, sectionBy: SectionBy<ObjectType>?, applyFetchClauses: @escaping (_ fetchRequest: NSFetchRequest<NSManagedObject>) -> Void, createAsynchronously: ((ListMonitor<ObjectType>) -> Void)?) {
private init(context: NSManagedObjectContext, transactionQueue: DispatchQueue, from: From<ObjectType>, sectionBy: SectionBy<ObjectType>?, applyFetchClauses: @escaping (_ fetchRequest: CoreStoreFetchRequest<NSManagedObject>) -> Void, createAsynchronously: ((ListMonitor<ObjectType>) -> Void)?) {
self.isSectioned = (sectionBy != nil)
self.from = from
@@ -1114,7 +1114,7 @@ public final class ListMonitor<D: DynamicObject>: Hashable {
self.isPersistentStoreChanging = true
guard let removedStores = (note.userInfo?[NSRemovedPersistentStoresKey] as? [NSPersistentStore]).flatMap(Set.init),
!Set(self.fetchedResultsController.fetchRequest.affectedStores ?? []).intersection(removedStores).isEmpty else {
!Set(self.fetchedResultsController.typedFetchRequest.safeAffectedStores() ?? []).intersection(removedStores).isEmpty else {
return
}
@@ -1135,7 +1135,7 @@ public final class ListMonitor<D: DynamicObject>: Hashable {
if !self.isPendingRefetch {
let previousStores = Set(self.fetchedResultsController.fetchRequest.affectedStores ?? [])
let previousStores = Set(self.fetchedResultsController.typedFetchRequest.safeAffectedStores() ?? [])
let currentStores = previousStores
.subtracting(note.userInfo?[NSRemovedPersistentStoresKey] as? [NSPersistentStore] ?? [])
.union(note.userInfo?[NSAddedPersistentStoresKey] as? [NSPersistentStore] ?? [])

View File

@@ -30,7 +30,8 @@ import Foundation
/**
The `MigrationResult` indicates the result of a migration.
The `MigrationResult` can be treated as a boolean:
`MigrationResult.success` indicates either the migration succeeded, or there were no migrations needed. The associated value is an array of `MigrationType`s reflecting the migration steps completed.
`MigrationResult.failure` indicates that the migration failed. The associated object for this value is the a `CoreStoreError` enum value.
```
CoreStore.upgradeStorageIfNeeded(SQLiteStorage(fileName: "data.sqlite")) { (result) in
switch result {
@@ -42,46 +43,4 @@ import Foundation
}
```
*/
public enum MigrationResult: Hashable {
/**
`MigrationResult.success` indicates either the migration succeeded, or there were no migrations needed. The associated value is an array of `MigrationType`s reflecting the migration steps completed.
*/
case success([MigrationType])
/**
`SaveResult.failure` indicates that the migration failed. The associated object for this value is the a `CoreStoreError` enum value.
*/
case failure(CoreStoreError)
/**
Returns `true` if the result indicates `.success`, `false` if the result is `.failure`.
*/
public var isSuccess: Bool {
switch self {
case .success: return true
case .failure: return false
}
}
// MARK: Internal
internal init(_ migrationTypes: [MigrationType]) {
self = .success(migrationTypes)
}
internal init(_ error: CoreStoreError) {
self = .failure(error)
}
internal init(_ error: Error) {
self = .failure(CoreStoreError(error))
}
}
public typealias MigrationResult = Swift.Result<[MigrationType], CoreStoreError>

View File

@@ -205,12 +205,12 @@ fileprivate func createFRC<D: NSManagedObject>(fromContext context: NSManagedObj
let controller = CoreStoreFetchedResultsController(
context: context,
fetchRequest: NSFetchRequest<NSManagedObject>(),
fetchRequest: CoreStoreFetchRequest(),
from: from,
sectionBy: sectionBy,
applyFetchClauses: { (fetchRequest) in
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
CoreStore.assert(
fetchRequest.sortDescriptors?.isEmpty == false,

View File

@@ -25,44 +25,6 @@
import Foundation
import CoreData
// MARK: - CSDataStack
@available(macOS 10.12, *)
extension CSDataStack {
@available(*, deprecated, message: "CoreStore will obsolete NSFetchedResultsController support in the future in favor of CSListMonitor")
@objc
public func createFetchedResultsControllerFrom(_ from: CSFrom, sectionBy: CSSectionBy, fetchClauses: [CSFetchClause]) -> NSFetchedResultsController<NSManagedObject> {
return createFRC(
fromContext: self.bridgeToSwift.mainContext,
from: from,
sectionBy: sectionBy,
fetchClauses: fetchClauses
)
}
}
// MARK: - CSUnsafeDataTransaction
@available(macOS 10.12, *)
extension CSUnsafeDataTransaction {
@available(*, deprecated, message: "CoreStore will obsolete NSFetchedResultsController support in the future in favor of CSListMonitor")
@objc
public func createFetchedResultsControllerFrom(_ from: CSFrom, sectionBy: CSSectionBy, fetchClauses: [CSFetchClause]) -> NSFetchedResultsController<NSManagedObject> {
return createFRC(
fromContext: self.bridgeToSwift.context,
from: from,
sectionBy: sectionBy,
fetchClauses: fetchClauses
)
}
}
// MARK: - Private
@@ -72,12 +34,12 @@ fileprivate func createFRC(fromContext context: NSManagedObjectContext, from: CS
let controller = CoreStoreFetchedResultsController(
context: context,
fetchRequest: NSFetchRequest<NSManagedObject>(),
fetchRequest: CoreStoreFetchRequest(),
from: from.bridgeToSwift,
sectionBy: sectionBy?.bridgeToSwift,
applyFetchClauses: { (fetchRequest) in
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
CoreStore.assert(
fetchRequest.sortDescriptors?.isEmpty == false,

View File

@@ -206,58 +206,4 @@ extension NSManagedObject {
self.managedObjectContext?.refresh(self, mergeChanges: true)
}
// MARK: Deprecated
@available(*, deprecated, renamed: "getValue(forKvcKey:)")
@nonobjc
public func accessValueForKVCKey(_ KVCKey: KeyPathString) -> Any? {
self.willAccessValue(forKey: KVCKey)
defer {
self.didAccessValue(forKey: KVCKey)
}
return self.primitiveValue(forKey: KVCKey)
}
@available(*, deprecated, renamed: "getValue(forKvcKey:didGetValue:)")
@discardableResult
@nonobjc
public func accessValueForKVCKey<T>(_ KVCKey: KeyPathString, _ didAccessPrimitiveValue: (Any?) throws -> T) rethrows -> T {
self.willAccessValue(forKey: KVCKey)
defer {
self.didAccessValue(forKey: KVCKey)
}
return try didAccessPrimitiveValue(self.primitiveValue(forKey: KVCKey))
}
@available(*, deprecated, renamed: "setValue(_:forKvcKey:)")
@nonobjc
public func setValue(_ value: Any?, forKVCKey KVCKey: KeyPathString) {
self.willChangeValue(forKey: KVCKey)
defer {
self.didChangeValue(forKey: KVCKey)
}
self.setPrimitiveValue(value, forKey: KVCKey)
}
@available(*, deprecated, renamed: "setValue(_:forKvcKey:didSetValue:)")
@discardableResult
@nonobjc
public func setValue<T>(_ value: Any?, forKVCKey KVCKey: KeyPathString, _ didSetPrimitiveValue: (Any?) throws -> T) rethrows -> T {
self.willChangeValue(forKey: KVCKey)
defer {
self.didChangeValue(forKey: KVCKey)
}
self.setPrimitiveValue(value, forKey: KVCKey)
return try didSetPrimitiveValue(value)
}
}

View File

@@ -36,12 +36,12 @@ extension NSManagedObjectContext {
@nonobjc
internal func fetchOne(_ from: CSFrom, _ fetchClauses: [CSFetchClause]) throws -> NSManagedObject? {
let fetchRequest = NSFetchRequest<NSManagedObject>()
let fetchRequest = CoreStoreFetchRequest<NSManagedObject>()
try from.bridgeToSwift.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.fetchLimit = 1
fetchRequest.resultType = .managedObjectResultType
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
return try self.fetchOne(fetchRequest)
}
@@ -49,12 +49,12 @@ extension NSManagedObjectContext {
@nonobjc
internal func fetchAll<T: NSManagedObject>(_ from: CSFrom, _ fetchClauses: [CSFetchClause]) throws -> [T] {
let fetchRequest = NSFetchRequest<T>()
let fetchRequest = CoreStoreFetchRequest<T>()
try from.bridgeToSwift.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.fetchLimit = 0
fetchRequest.resultType = .managedObjectResultType
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
return try self.fetchAll(fetchRequest)
}
@@ -62,11 +62,11 @@ extension NSManagedObjectContext {
@nonobjc
internal func fetchCount(_ from: CSFrom, _ fetchClauses: [CSFetchClause]) throws -> Int {
let fetchRequest = NSFetchRequest<NSNumber>()
let fetchRequest = CoreStoreFetchRequest<NSNumber>()
try from.bridgeToSwift.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.resultType = .countResultType
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
return try self.fetchCount(fetchRequest)
}
@@ -74,12 +74,12 @@ extension NSManagedObjectContext {
@nonobjc
internal func fetchObjectID(_ from: CSFrom, _ fetchClauses: [CSFetchClause]) throws -> NSManagedObjectID? {
let fetchRequest = NSFetchRequest<NSManagedObjectID>()
let fetchRequest = CoreStoreFetchRequest<NSManagedObjectID>()
try from.bridgeToSwift.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.fetchLimit = 1
fetchRequest.resultType = .managedObjectIDResultType
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
return try self.fetchObjectID(fetchRequest)
}
@@ -87,12 +87,12 @@ extension NSManagedObjectContext {
@nonobjc
internal func fetchObjectIDs(_ from: CSFrom, _ fetchClauses: [CSFetchClause]) throws -> [NSManagedObjectID] {
let fetchRequest = NSFetchRequest<NSManagedObjectID>()
let fetchRequest = CoreStoreFetchRequest<NSManagedObjectID>()
try from.bridgeToSwift.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.fetchLimit = 0
fetchRequest.resultType = .managedObjectIDResultType
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
fetchClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
return try self.fetchObjectIDs(fetchRequest)
}
@@ -100,14 +100,14 @@ extension NSManagedObjectContext {
@nonobjc
internal func deleteAll(_ from: CSFrom, _ deleteClauses: [CSDeleteClause]) throws -> Int {
let fetchRequest = NSFetchRequest<NSManagedObject>()
let fetchRequest = CoreStoreFetchRequest<NSManagedObject>()
try from.bridgeToSwift.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.fetchLimit = 0
fetchRequest.resultType = .managedObjectResultType
fetchRequest.returnsObjectsAsFaults = true
fetchRequest.includesPropertyValues = false
deleteClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
deleteClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
return try self.deleteAll(fetchRequest)
}
@@ -115,13 +115,13 @@ extension NSManagedObjectContext {
@nonobjc
internal func queryValue(_ from: CSFrom, _ selectClause: CSSelect, _ queryClauses: [CSQueryClause]) throws -> Any? {
let fetchRequest = NSFetchRequest<NSDictionary>()
let fetchRequest = CoreStoreFetchRequest<NSDictionary>()
try from.bridgeToSwift.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.fetchLimit = 0
selectClause.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>)
queryClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
selectClause.applyToFetchRequest(fetchRequest)
queryClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
return try self.queryValue(selectClause.selectTerms, fetchRequest: fetchRequest)
}
@@ -129,13 +129,13 @@ extension NSManagedObjectContext {
@nonobjc
internal func queryAttributes(_ from: CSFrom, _ selectClause: CSSelect, _ queryClauses: [CSQueryClause]) throws -> [[String: Any]] {
let fetchRequest = NSFetchRequest<NSDictionary>()
let fetchRequest = CoreStoreFetchRequest<NSDictionary>()
try from.bridgeToSwift.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.fetchLimit = 0
selectClause.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>)
queryClauses.forEach { $0.applyToFetchRequest(fetchRequest as! NSFetchRequest<NSFetchRequestResult>) }
selectClause.applyToFetchRequest(fetchRequest)
queryClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
return try self.queryAttributes(fetchRequest)
}

View File

@@ -109,7 +109,7 @@ extension NSManagedObjectContext: FetchableSource, QueryableSource {
@nonobjc
public func fetchOne<D>(_ from: From<D>, _ fetchClauses: [FetchClause]) throws -> D? {
let fetchRequest = NSFetchRequest<NSManagedObject>()
let fetchRequest = CoreStoreFetchRequest<NSManagedObject>()
try from.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.fetchLimit = 1
@@ -134,7 +134,7 @@ extension NSManagedObjectContext: FetchableSource, QueryableSource {
@nonobjc
public func fetchAll<D>(_ from: From<D>, _ fetchClauses: [FetchClause]) throws -> [D] {
let fetchRequest = NSFetchRequest<NSManagedObject>()
let fetchRequest = CoreStoreFetchRequest<NSManagedObject>()
try from.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.fetchLimit = 0
@@ -160,7 +160,7 @@ extension NSManagedObjectContext: FetchableSource, QueryableSource {
@nonobjc
public func fetchCount<D>(_ from: From<D>, _ fetchClauses: [FetchClause]) throws -> Int {
let fetchRequest = NSFetchRequest<NSNumber>()
let fetchRequest = CoreStoreFetchRequest<NSNumber>()
try from.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.resultType = .countResultType
@@ -184,7 +184,7 @@ extension NSManagedObjectContext: FetchableSource, QueryableSource {
@nonobjc
public func fetchObjectID<D>(_ from: From<D>, _ fetchClauses: [FetchClause]) throws -> NSManagedObjectID? {
let fetchRequest = NSFetchRequest<NSManagedObjectID>()
let fetchRequest = CoreStoreFetchRequest<NSManagedObjectID>()
try from.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.fetchLimit = 1
@@ -209,7 +209,7 @@ extension NSManagedObjectContext: FetchableSource, QueryableSource {
@nonobjc
public func fetchObjectIDs<D>(_ from: From<D>, _ fetchClauses: [FetchClause]) throws -> [NSManagedObjectID] {
let fetchRequest = NSFetchRequest<NSManagedObjectID>()
let fetchRequest = CoreStoreFetchRequest<NSManagedObjectID>()
try from.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.fetchLimit = 0
@@ -226,7 +226,7 @@ extension NSManagedObjectContext: FetchableSource, QueryableSource {
}
@nonobjc
internal func fetchObjectIDs(_ fetchRequest: NSFetchRequest<NSManagedObjectID>) throws -> [NSManagedObjectID] {
internal func fetchObjectIDs(_ fetchRequest: CoreStoreFetchRequest<NSManagedObjectID>) throws -> [NSManagedObjectID] {
var fetchResults: [NSManagedObjectID]?
var fetchError: Error?
@@ -234,7 +234,7 @@ extension NSManagedObjectContext: FetchableSource, QueryableSource {
do {
fetchResults = try self.fetch(fetchRequest)
fetchResults = try self.fetch(fetchRequest.dynamicCast())
}
catch {
@@ -265,12 +265,12 @@ extension NSManagedObjectContext: FetchableSource, QueryableSource {
@nonobjc
public func queryValue<D, U: QueryableAttributeType>(_ from: From<D>, _ selectClause: Select<D, U>, _ queryClauses: [QueryClause]) throws -> U? {
let fetchRequest = NSFetchRequest<NSDictionary>()
let fetchRequest = CoreStoreFetchRequest<NSDictionary>()
try from.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.fetchLimit = 0
selectClause.applyToFetchRequest(fetchRequest)
selectClause.applyToFetchRequest(fetchRequest.staticCast())
queryClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
return try self.queryValue(selectClause.selectTerms, fetchRequest: fetchRequest)
@@ -291,12 +291,12 @@ extension NSManagedObjectContext: FetchableSource, QueryableSource {
@nonobjc
public func queryAttributes<D>(_ from: From<D>, _ selectClause: Select<D, NSDictionary>, _ queryClauses: [QueryClause]) throws -> [[String: Any]] {
let fetchRequest = NSFetchRequest<NSDictionary>()
let fetchRequest = CoreStoreFetchRequest<NSDictionary>()
try from.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.fetchLimit = 0
selectClause.applyToFetchRequest(fetchRequest)
selectClause.applyToFetchRequest(fetchRequest.staticCast())
queryClauses.forEach { $0.applyToFetchRequest(fetchRequest) }
return try self.queryAttributes(fetchRequest)
@@ -322,7 +322,7 @@ extension NSManagedObjectContext: FetchableSource, QueryableSource {
@nonobjc
internal func deleteAll<D>(_ from: From<D>, _ deleteClauses: [FetchClause]) throws -> Int {
let fetchRequest = NSFetchRequest<NSManagedObject>()
let fetchRequest = CoreStoreFetchRequest<NSManagedObject>()
try from.applyToFetchRequest(fetchRequest, context: self)
fetchRequest.fetchLimit = 0
@@ -333,15 +333,6 @@ extension NSManagedObjectContext: FetchableSource, QueryableSource {
return try self.deleteAll(fetchRequest)
}
// MARK: Deprecated
@available(*, deprecated, renamed: "unsafeContext()")
public func internalContext() -> NSManagedObjectContext {
return self.unsafeContext()
}
}
@@ -352,7 +343,7 @@ extension NSManagedObjectContext {
// MARK: Fetching
@nonobjc
internal func fetchOne<D: NSManagedObject>(_ fetchRequest: NSFetchRequest<D>) throws -> D? {
internal func fetchOne<D: NSManagedObject>(_ fetchRequest: CoreStoreFetchRequest<D>) throws -> D? {
var fetchResults: [D]?
var fetchError: Error?
@@ -360,7 +351,7 @@ extension NSManagedObjectContext {
do {
fetchResults = try self.fetch(fetchRequest)
fetchResults = try self.fetch(fetchRequest.staticCast())
}
catch {
@@ -380,7 +371,7 @@ extension NSManagedObjectContext {
}
@nonobjc
internal func fetchAll<D: NSManagedObject>(_ fetchRequest: NSFetchRequest<D>) throws -> [D] {
internal func fetchAll<D: NSManagedObject>(_ fetchRequest: CoreStoreFetchRequest<D>) throws -> [D] {
var fetchResults: [D]?
var fetchError: Error?
@@ -388,7 +379,7 @@ extension NSManagedObjectContext {
do {
fetchResults = try self.fetch(fetchRequest)
fetchResults = try self.fetch(fetchRequest.staticCast())
}
catch {
@@ -408,7 +399,7 @@ extension NSManagedObjectContext {
}
@nonobjc
internal func fetchCount(_ fetchRequest: NSFetchRequest<NSNumber>) throws -> Int {
internal func fetchCount(_ fetchRequest: CoreStoreFetchRequest<NSNumber>) throws -> Int {
var count = 0
var countError: Error?
@@ -416,7 +407,7 @@ extension NSManagedObjectContext {
do {
count = try self.count(for: fetchRequest)
count = try self.count(for: fetchRequest.staticCast())
}
catch {
@@ -436,7 +427,7 @@ extension NSManagedObjectContext {
}
@nonobjc
internal func fetchObjectID(_ fetchRequest: NSFetchRequest<NSManagedObjectID>) throws -> NSManagedObjectID? {
internal func fetchObjectID(_ fetchRequest: CoreStoreFetchRequest<NSManagedObjectID>) throws -> NSManagedObjectID? {
var fetchResults: [NSManagedObjectID]?
var fetchError: Error?
@@ -444,7 +435,7 @@ extension NSManagedObjectContext {
do {
fetchResults = try self.fetch(fetchRequest)
fetchResults = try self.fetch(fetchRequest.staticCast())
}
catch {
@@ -467,7 +458,7 @@ extension NSManagedObjectContext {
// MARK: Querying
@nonobjc
internal func queryValue<D, U: QueryableAttributeType>(_ selectTerms: [SelectTerm<D>], fetchRequest: NSFetchRequest<NSDictionary>) throws -> U? {
internal func queryValue<D, U: QueryableAttributeType>(_ selectTerms: [SelectTerm<D>], fetchRequest: CoreStoreFetchRequest<NSDictionary>) throws -> U? {
var fetchResults: [Any]?
var fetchError: Error?
@@ -475,7 +466,7 @@ extension NSManagedObjectContext {
do {
fetchResults = try self.fetch(fetchRequest)
fetchResults = try self.fetch(fetchRequest.staticCast())
}
catch {
@@ -500,7 +491,7 @@ extension NSManagedObjectContext {
}
@nonobjc
internal func queryValue<D>(_ selectTerms: [SelectTerm<D>], fetchRequest: NSFetchRequest<NSDictionary>) throws -> Any? {
internal func queryValue<D>(_ selectTerms: [SelectTerm<D>], fetchRequest: CoreStoreFetchRequest<NSDictionary>) throws -> Any? {
var fetchResults: [Any]?
var fetchError: Error?
@@ -508,7 +499,7 @@ extension NSManagedObjectContext {
do {
fetchResults = try self.fetch(fetchRequest)
fetchResults = try self.fetch(fetchRequest.staticCast())
}
catch {
@@ -533,7 +524,7 @@ extension NSManagedObjectContext {
}
@nonobjc
internal func queryAttributes(_ fetchRequest: NSFetchRequest<NSDictionary>) throws -> [[String: Any]] {
internal func queryAttributes(_ fetchRequest: CoreStoreFetchRequest<NSDictionary>) throws -> [[String: Any]] {
var fetchResults: [Any]?
var fetchError: Error?
@@ -541,7 +532,7 @@ extension NSManagedObjectContext {
do {
fetchResults = try self.fetch(fetchRequest)
fetchResults = try self.fetch(fetchRequest.staticCast())
}
catch {
@@ -564,7 +555,7 @@ extension NSManagedObjectContext {
// MARK: Deleting
@nonobjc
internal func deleteAll<D: NSManagedObject>(_ fetchRequest: NSFetchRequest<D>) throws -> Int {
internal func deleteAll<D: NSManagedObject>(_ fetchRequest: CoreStoreFetchRequest<D>) throws -> Int {
var numberOfDeletedObjects: Int?
var fetchError: Error?
@@ -574,7 +565,7 @@ extension NSManagedObjectContext {
do {
let fetchResults = try self.fetch(fetchRequest)
let fetchResults = try self.fetch(fetchRequest.staticCast())
for object in fetchResults {
self.delete(object)

View File

@@ -261,7 +261,7 @@ public final class ObjectMonitor<D: DynamicObject>: Equatable {
private init(context: NSManagedObjectContext, object: ObjectType) {
let objectID = object.cs_id()
let fetchRequest = NSFetchRequest<NSManagedObject>()
let fetchRequest = CoreStoreFetchRequest<NSManagedObject>()
fetchRequest.entity = objectID.entity
fetchRequest.fetchLimit = 0
fetchRequest.resultType = .managedObjectResultType

View File

@@ -352,19 +352,4 @@ public final class SQLiteStore: LocalStorage {
// MARK: Private
private weak var dataStack: DataStack?
// MARK: Obsoleted
@available(swift, obsoleted: 3.1, message: "The `mappingModelBundles` argument of this method is ignored. Use the new SQLiteStore.init(fileURL:configuration:migrationMappingProviders:localStorageOptions:) initializer instead.")
public convenience init(fileURL: URL, configuration: ModelConfiguration = nil, mappingModelBundles: [Bundle], localStorageOptions: LocalStorageOptions = nil) {
fatalError()
}
@available(swift, obsoleted: 3.1, message: "The `mappingModelBundles` argument of this method is ignored. Use the new SQLiteStore.init(fileName:configuration:migrationMappingProviders:localStorageOptions:) initializer instead.")
public convenience init(fileName: String, configuration: ModelConfiguration = nil, mappingModelBundles: [Bundle], localStorageOptions: LocalStorageOptions = nil) {
fatalError()
}
}

View File

@@ -1,58 +0,0 @@
//
// SaveResult.swift
// CoreStore
//
// Copyright © 2018 John Rommel Estropia
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all
// copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// SOFTWARE.
//
import Foundation
// MARK: - SaveResult
@available(*, deprecated, message: "Use the new DataStack.perform(asynchronous:...) and DataStack.perform(synchronous:...) family of APIs")
public enum SaveResult: Hashable {
case success(hasChanges: Bool)
case failure(CoreStoreError)
public var boolValue: Bool {
switch self {
case .success: return true
case .failure: return false
}
}
// MARK: Internal
internal init(hasChanges: Bool) {
self = .success(hasChanges: hasChanges)
}
internal init(_ error: CoreStoreError) {
self = .failure(error)
}
}

View File

@@ -31,21 +31,8 @@ import CoreData
/**
The `SetupResult` indicates the result of an asynchronous initialization of a persistent store.
The `SetupResult` can be treated as a boolean:
```
try! CoreStore.addStorage(
SQLiteStore(),
completion: { (result: SetupResult) -> Void in
if result {
// succeeded
}
else {
// failed
}
}
)
```
or as an `enum`, where the resulting associated object can also be inspected:
`SetupResult.success` indicates that the storage setup succeeded. The associated object for this `enum` value is the related `StorageInterface` instance.
`SetupResult.failure` indicates that the storage setup failed. The associated object for this value is the related `CoreStoreError` enum value.
```
try! CoreStore.addStorage(
SQLiteStore(),
@@ -60,81 +47,4 @@ import CoreData
)
```
*/
public enum SetupResult<T: StorageInterface>: Hashable {
/**
`SetupResult.success` indicates that the storage setup succeeded. The associated object for this `enum` value is the related `StorageInterface` instance.
*/
case success(T)
/**
`SetupResult.failure` indicates that the storage setup failed. The associated object for this value is the related `CoreStoreError` enum value.
*/
case failure(CoreStoreError)
/**
Returns `true` if the result indicates `.success`, `false` if the result is `.failure`.
*/
public var isSuccess: Bool {
switch self {
case .success: return true
case .failure: return false
}
}
// MARK: Equatable
public static func == <T, U>(lhs: SetupResult<T>, rhs: SetupResult<U>) -> Bool {
switch (lhs, rhs) {
case (.success(let storage1), .success(let storage2)):
return storage1 === storage2
case (.failure(let error1), .failure(let error2)):
return error1 == error2
default:
return false
}
}
// MARK: Hashable
public func hash(into hasher: inout Hasher) {
switch self {
case .success(let storage):
hasher.combine(true)
hasher.combine(ObjectIdentifier(storage))
case .failure(let error):
hasher.combine(false)
hasher.combine(error)
}
}
// MARK: Internal
internal init(_ storage: T) {
self = .success(storage)
}
internal init(_ error: CoreStoreError) {
self = .failure(error)
}
internal init(_ error: Error) {
self = .failure(CoreStoreError(error))
}
}
public typealias SetupResult<StorageInterfaceType> = Swift.Result<StorageInterfaceType, CoreStoreError> where StorageInterfaceType: StorageInterface

View File

@@ -164,79 +164,4 @@ public final class SynchronousDataTransaction: BaseDataTransaction {
}
return result
}
// MARK: Deprecated
@available(*, deprecated, message: "Use the new auto-commit method DataStack.perform(synchronous:waitForAllObservers:)")
public func commitAndWait() -> SaveResult {
CoreStore.assert(
self.transactionQueue.cs_isCurrentExecutionContext(),
"Attempted to commit a \(cs_typeName(self)) outside its designated queue."
)
CoreStore.assert(
!self.isCommitted,
"Attempted to commit a \(cs_typeName(self)) more than once."
)
switch self.autoCommit(waitForMerge: true) {
case (let hasChanges, nil): return SaveResult(hasChanges: hasChanges)
case (_, let error?): return SaveResult(error)
}
}
@available(*, deprecated, message: "Use the new auto-commit method DataStack.perform(synchronous:waitForAllObservers:)")
public func commit() -> SaveResult {
CoreStore.assert(
self.transactionQueue.cs_isCurrentExecutionContext(),
"Attempted to commit a \(cs_typeName(self)) outside its designated queue."
)
CoreStore.assert(
!self.isCommitted,
"Attempted to commit a \(cs_typeName(self)) more than once."
)
switch self.autoCommit(waitForMerge: false) {
case (let hasChanges, nil): return SaveResult(hasChanges: hasChanges)
case (_, let error?): return SaveResult(error)
}
}
@available(*, deprecated, message: "Secondary tasks spawned from AsynchronousDataTransactions and SynchronousDataTransactions are no longer supported. ")
@discardableResult
public func beginSynchronous(_ closure: @escaping (_ transaction: SynchronousDataTransaction) -> Void) -> SaveResult? {
CoreStore.assert(
self.transactionQueue.cs_isCurrentExecutionContext(),
"Attempted to begin a child transaction from a \(cs_typeName(self)) outside its designated queue."
)
CoreStore.assert(
!self.isCommitted,
"Attempted to begin a child transaction from an already committed \(cs_typeName(self))."
)
let childTransaction = SynchronousDataTransaction(
mainContext: self.context,
queue: self.childTransactionQueue
)
childTransaction.transactionQueue.cs_sync {
closure(childTransaction)
if !childTransaction.isCommitted && childTransaction.hasChanges {
CoreStore.log(
.warning,
message: "The closure for the \(cs_typeName(childTransaction)) completed without being committed. All changes made within the transaction were discarded."
)
}
}
switch childTransaction.result {
case .none: return nil
case .some(let hasChanges, nil): return SaveResult(hasChanges: hasChanges)
case .some(_, let error?): return SaveResult(error)
}
}
}

View File

@@ -254,25 +254,6 @@ public enum TransformableContainer<O: CoreStoreObject> {
private let customGetter: ((_ partialObject: PartialObject<O>) -> V)?
private let customSetter: ((_ partialObject: PartialObject<O>, _ newValue: V) -> Void)?
// MARK: Deprecated
@available(*, unavailable, message: "Indexes are now set through the Entity<T> initializer, which now supports compound indexes.")
public convenience init(
_ keyPath: KeyPathString,
initial: @autoclosure @escaping () -> V,
isIndexed: Bool,
isTransient: Bool = false,
allowsExternalBinaryDataStorage: Bool = false,
versionHashModifier: @autoclosure @escaping () -> String? = nil,
renamingIdentifier: @autoclosure @escaping () -> String? = nil,
customGetter: ((_ partialObject: PartialObject<O>) -> V)? = nil,
customSetter: ((_ partialObject: PartialObject<O>, _ newValue: V) -> Void)? = nil,
affectedByKeyPaths: @autoclosure @escaping () -> Set<String> = []) {
fatalError()
}
}
@@ -467,25 +448,6 @@ public enum TransformableContainer<O: CoreStoreObject> {
private let customGetter: ((_ partialObject: PartialObject<O>) -> V?)?
private let customSetter: ((_ partialObject: PartialObject<O>, _ newValue: V?) -> Void)?
// MARK: Deprecated
@available(*, unavailable, message: "Indexes are now set through the Entity<T> initializer, which now supports compound indexes.")
public convenience init(
_ keyPath: KeyPathString,
initial: @autoclosure @escaping () -> V? = nil,
isIndexed: Bool,
isTransient: Bool = false,
allowsExternalBinaryDataStorage: Bool = false,
versionHashModifier: @autoclosure @escaping () -> String? = nil,
renamingIdentifier: @autoclosure @escaping () -> String? = nil,
customGetter: ((_ partialObject: PartialObject<O>) -> V?)? = nil,
customSetter: ((_ partialObject: PartialObject<O>, _ newValue: V?) -> Void)? = nil,
affectedByKeyPaths: @autoclosure @escaping () -> Set<String> = []) {
fatalError()
}
}
}

View File

@@ -249,24 +249,6 @@ public enum ValueContainer<O: CoreStoreObject> {
private let customGetter: ((_ partialObject: PartialObject<O>) -> V)?
private let customSetter: ((_ partialObject: PartialObject<O>, _ newValue: V) -> Void)?
// MARK: Deprecated
@available(*, unavailable, message: "Indexes are now set through the Entity<T> initializer, which now supports compound indexes.")
public convenience init(
_ keyPath: KeyPathString,
initial: @autoclosure @escaping () -> V,
isIndexed: Bool,
isTransient: Bool = false,
versionHashModifier: @autoclosure @escaping () -> String? = nil,
renamingIdentifier: @autoclosure @escaping () -> String? = nil,
customGetter: ((_ partialObject: PartialObject<O>) -> V)? = nil,
customSetter: ((_ partialObject: PartialObject<O>, _ newValue: V) -> Void)? = nil,
affectedByKeyPaths: @autoclosure @escaping () -> Set<String> = []) {
fatalError()
}
}
@@ -461,24 +443,6 @@ public enum ValueContainer<O: CoreStoreObject> {
private let customGetter: ((_ partialObject: PartialObject<O>) -> V?)?
private let customSetter: ((_ partialObject: PartialObject<O>, _ newValue: V?) -> Void)?
// MARK: Deprecated
@available(*, unavailable, message: "Indexes are now set through the Entity<T> initializer, which now supports compound indexes.")
public convenience init(
_ keyPath: KeyPathString,
initial: @autoclosure @escaping () -> V? = nil,
isIndexed: Bool,
isTransient: Bool = false,
versionHashModifier: @autoclosure @escaping () -> String? = nil,
renamingIdentifier: @autoclosure @escaping () -> String? = nil,
customGetter: ((_ partialObject: PartialObject<O>) -> V?)? = nil,
customSetter: ((_ partialObject: PartialObject<O>, _ newValue: V?) -> Void)? = nil,
affectedByKeyPaths: @autoclosure @escaping () -> Set<String> = []) {
fatalError()
}
}
}

View File

@@ -29,11 +29,24 @@ import CoreData
// MARK: - ~
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let owner = CoreStore.fetchOne(
From<Pet>().where(
(\.master ~ \.name) == "John"
)
)
```
*/
infix operator ~ : AdditionPrecedence
// MARK: - WhereExpressionTrait
/**
Used only for `Where.Expression` type constraints. Currently supports `SingleTarget` and `CollectionTarget`.
*/
public protocol WhereExpressionTrait {}
@@ -43,8 +56,20 @@ extension Where {
// MARK: - Expression
/**
Type-safe keyPath chain usable in query/fetch expressions.
```
let expression: Where<Pet>.Expression = (\.master ~ \.name)
let owner = CoreStore.fetchOne(
From<Pet>().where(expression == "John")
)
```
*/
public struct Expression<T: WhereExpressionTrait, V>: CustomStringConvertible, DynamicKeyPath {
/**
Currently supports `SingleTarget` and `CollectionTarget`.
*/
public typealias Trait = T
@@ -83,10 +108,17 @@ extension Where {
// MARK: - SingleTarget
/**
Used only for `Where.Expression` type constraints. Specifies that this `Where.Expression` type pertains to an attribute property expression.
*/
public enum SingleTarget: WhereExpressionTrait {}
// MARK: - CollectionTarget
/**
Used only for `Where.Expression` type constraints. Specifies that this `Where.Expression` type pertains to a to-many relationship expression.
*/
public enum CollectionTarget: WhereExpressionTrait {}
}
@@ -95,47 +127,101 @@ extension Where {
// MARK: ~ where D: NSManagedObject
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let owner = CoreStore.fetchOne(From<Pet>().where((\.master ~ \.name) == "John"))
```
*/
public func ~<D: NSManagedObject, O: NSManagedObject, V: AllowedObjectiveCKeyPathValue>(_ lhs: KeyPath<D, O>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<Where<D>.SingleTarget, V> {
return .init(lhs.cs_keyPathString, rhs.cs_keyPathString)
}
public func ~<D: NSManagedObject, O: NSManagedObject, V: AllowedObjectiveCKeyPathValue>(_ lhs: KeyPath<D, O?>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<Where<D>.SingleTarget, V> {
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let owner = CoreStore.fetchOne(From<Pet>().where((\.master ~ \.name) == "John"))
```
*/
public func ~ <D: NSManagedObject, O: NSManagedObject, V: AllowedObjectiveCKeyPathValue>(_ lhs: KeyPath<D, O?>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<Where<D>.SingleTarget, V> {
return .init(lhs.cs_keyPathString, rhs.cs_keyPathString)
}
public func ~<D: NSManagedObject, O: NSManagedObject, V: AllowedObjectiveCCollectionKeyPathValue>(_ lhs: KeyPath<D, O>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<Where<D>.CollectionTarget, V> {
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let happyPets = CoreStore.fetchAll(From<Pet>().where((\.master ~ \.pets).count() > 1))
```
*/
public func ~ <D: NSManagedObject, O: NSManagedObject, V: AllowedObjectiveCCollectionKeyPathValue>(_ lhs: KeyPath<D, O>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<Where<D>.CollectionTarget, V> {
return .init(lhs.cs_keyPathString, rhs.cs_keyPathString)
}
public func ~<D: NSManagedObject, O: NSManagedObject, V: AllowedObjectiveCCollectionKeyPathValue>(_ lhs: KeyPath<D, O?>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<Where<D>.CollectionTarget, V> {
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let happyPets = CoreStore.fetchAll(From<Pet>().where((\.master ~ \.pets).count() > 1))
```
*/
public func ~ <D: NSManagedObject, O: NSManagedObject, V: AllowedObjectiveCCollectionKeyPathValue>(_ lhs: KeyPath<D, O?>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<Where<D>.CollectionTarget, V> {
return .init(lhs.cs_keyPathString, rhs.cs_keyPathString)
}
public func ~<D: NSManagedObject, O: NSManagedObject, T, V: AllowedObjectiveCKeyPathValue>(_ lhs: Where<D>.Expression<T, O>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<T, V> {
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let johnsSonInLaw = CoreStore.fetchOne(From<Person>().where((\.spouse ~ \.father ~ \.name) == "John"))
```
*/
public func ~ <D: NSManagedObject, O: NSManagedObject, T, V: AllowedObjectiveCKeyPathValue>(_ lhs: Where<D>.Expression<T, O>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<T, V> {
return .init(lhs.cs_keyPathString, rhs.cs_keyPathString)
}
public func ~<D: NSManagedObject, O: NSManagedObject, T, V: AllowedObjectiveCCollectionKeyPathValue>(_ lhs: Where<D>.Expression<T, O>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<Where<D>.CollectionTarget, V> {
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let johnsSonInLaw = CoreStore.fetchOne(From<Person>().where((\.spouse ~ \.father ~ \.name) == "John"))
```
*/
public func ~ <D: NSManagedObject, O: NSManagedObject, T, V: AllowedObjectiveCKeyPathValue>(_ lhs: Where<D>.Expression<T, O?>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<T, V> {
return .init(lhs.cs_keyPathString, rhs.cs_keyPathString)
}
public func ~<D: NSManagedObject, O: NSManagedObject, T, V: AllowedObjectiveCKeyPathValue>(_ lhs: Where<D>.Expression<T, O?>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<T, V> {
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let spouseHasSiblings = CoreStore.fetchOne(From<Person>().where((\.spouse ~ \.father ~ \.children).count() > 0))
```
*/
public func ~ <D: NSManagedObject, O: NSManagedObject, T, V: AllowedObjectiveCCollectionKeyPathValue>(_ lhs: Where<D>.Expression<T, O>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<Where<D>.CollectionTarget, V> {
return .init(lhs.cs_keyPathString, rhs.cs_keyPathString)
}
public func ~<D: NSManagedObject, O: NSManagedObject, T, V: AllowedObjectiveCCollectionKeyPathValue>(_ lhs: Where<D>.Expression<T, O?>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<Where<D>.CollectionTarget, V> {
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let spouseHasSiblings = CoreStore.fetchOne(From<Person>().where((\.spouse ~ \.father ~ \.children).count() > 0))
```
*/
public func ~ <D: NSManagedObject, O: NSManagedObject, T, V: AllowedObjectiveCCollectionKeyPathValue>(_ lhs: Where<D>.Expression<T, O?>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<Where<D>.CollectionTarget, V> {
return .init(lhs.cs_keyPathString, rhs.cs_keyPathString)
}
public func ~<D: NSManagedObject, O: NSManagedObject, T, C: AllowedObjectiveCCollectionKeyPathValue, V: AllowedObjectiveCKeyPathValue>(_ lhs: Where<D>.Expression<T, C>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<Where<D>.CollectionTarget, V> {
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let spousesWithBadNamingSense = CoreStore.fetchAll(From<Person>().where((\.spouse ~ \.pets ~ \.name).any() == "Spot"))
```
*/
public func ~ <D: NSManagedObject, O: NSManagedObject, T, C: AllowedObjectiveCCollectionKeyPathValue, V: AllowedObjectiveCKeyPathValue>(_ lhs: Where<D>.Expression<T, C>, _ rhs: KeyPath<O, V>) -> Where<D>.Expression<Where<D>.CollectionTarget, V> {
return .init(lhs.cs_keyPathString, rhs.cs_keyPathString)
}
@@ -143,7 +229,13 @@ public func ~<D: NSManagedObject, O: NSManagedObject, T, C: AllowedObjectiveCCol
// MARK: - ~ where D: CoreStoreObject
public func ~<D: CoreStoreObject, O: CoreStoreObject, K: AllowedCoreStoreObjectKeyPathValue>(_ lhs: KeyPath<D, RelationshipContainer<D>.ToOne<O>>, _ rhs: KeyPath<O, K>) -> Where<D>.Expression<Where<D>.SingleTarget, K.ValueType> where K.ObjectType == O {
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let owner = CoreStore.fetchOne(From<Pet>().where((\.master ~ \.name) == "John"))
```
*/
public func ~ <D: CoreStoreObject, O: CoreStoreObject, K: AllowedCoreStoreObjectKeyPathValue>(_ lhs: KeyPath<D, RelationshipContainer<D>.ToOne<O>>, _ rhs: KeyPath<O, K>) -> Where<D>.Expression<Where<D>.SingleTarget, K.ValueType> where K.ObjectType == O {
return .init(
D.meta[keyPath: lhs].cs_keyPathString,
@@ -151,7 +243,41 @@ public func ~<D: CoreStoreObject, O: CoreStoreObject, K: AllowedCoreStoreObjectK
)
}
public func ~<D: CoreStoreObject, O: CoreStoreObject, K: AllowedCoreStoreObjectCollectionKeyPathValue>(_ lhs: KeyPath<D, RelationshipContainer<D>.ToOne<O>>, _ rhs: KeyPath<O, K>) -> Where<D>.Expression<Where<D>.CollectionTarget, K.ValueType> where K.ObjectType == O {
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let owner = CoreStore.fetchOne(From<Pet>().where((\.master ~ \.name) == "John"))
```
*/
public func ~ <D: CoreStoreObject, O: CoreStoreObject, T, K: AllowedCoreStoreObjectKeyPathValue>(_ lhs: Where<D>.Expression<T, O>, _ rhs: KeyPath<O, K>) -> Where<D>.Expression<T, K.ValueType> where K.ObjectType == O {
return .init(
lhs.cs_keyPathString,
O.meta[keyPath: rhs].cs_keyPathString
)
}
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let owner = CoreStore.fetchOne(From<Pet>().where((\.master ~ \.name) == "John"))
```
*/
public func ~ <D: CoreStoreObject, O: CoreStoreObject, T, K: AllowedCoreStoreObjectKeyPathValue>(_ lhs: Where<D>.Expression<T, O?>, _ rhs: KeyPath<O, K>) -> Where<D>.Expression<T, K.ValueType> where K.ObjectType == O {
return .init(
lhs.cs_keyPathString,
O.meta[keyPath: rhs].cs_keyPathString
)
}
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let happyPets = CoreStore.fetchAll(From<Pet>().where((\.master ~ \.pets).count() > 1))
```
*/
public func ~ <D: CoreStoreObject, O: CoreStoreObject, K: AllowedCoreStoreObjectCollectionKeyPathValue>(_ lhs: KeyPath<D, RelationshipContainer<D>.ToOne<O>>, _ rhs: KeyPath<O, K>) -> Where<D>.Expression<Where<D>.CollectionTarget, K.ValueType> where K.ObjectType == O {
return .init(
D.meta[keyPath: lhs].cs_keyPathString,
@@ -159,7 +285,13 @@ public func ~<D: CoreStoreObject, O: CoreStoreObject, K: AllowedCoreStoreObjectC
)
}
public func ~<D: CoreStoreObject, O: CoreStoreObject, T, K: AllowedCoreStoreObjectKeyPathValue>(_ lhs: Where<D>.Expression<T, O>, _ rhs: KeyPath<O, K>) -> Where<D>.Expression<T, K.ValueType> where K.ObjectType == O {
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let happyPets = CoreStore.fetchAll(From<Pet>().where((\.master ~ \.pets).count() > 1))
```
*/
public func ~ <D: CoreStoreObject, O: CoreStoreObject, T, K: AllowedCoreStoreObjectCollectionKeyPathValue>(_ lhs: Where<D>.Expression<T, O>, _ rhs: KeyPath<O, K>) -> Where<D>.Expression<Where<D>.CollectionTarget, K.ValueType> where K.ObjectType == O {
return .init(
lhs.cs_keyPathString,
@@ -167,7 +299,13 @@ public func ~<D: CoreStoreObject, O: CoreStoreObject, T, K: AllowedCoreStoreObje
)
}
public func ~<D: CoreStoreObject, O: CoreStoreObject, T, K: AllowedCoreStoreObjectCollectionKeyPathValue>(_ lhs: Where<D>.Expression<T, O>, _ rhs: KeyPath<O, K>) -> Where<D>.Expression<Where<D>.CollectionTarget, K.ValueType> where K.ObjectType == O {
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let happyPets = CoreStore.fetchAll(From<Pet>().where((\.master ~ \.pets).count() > 1))
```
*/
public func ~ <D: CoreStoreObject, O: CoreStoreObject, T, K: AllowedCoreStoreObjectCollectionKeyPathValue>(_ lhs: Where<D>.Expression<T, O?>, _ rhs: KeyPath<O, K>) -> Where<D>.Expression<Where<D>.CollectionTarget, K.ValueType> where K.ObjectType == O {
return .init(
lhs.cs_keyPathString,
@@ -175,23 +313,13 @@ public func ~<D: CoreStoreObject, O: CoreStoreObject, T, K: AllowedCoreStoreObje
)
}
public func ~<D: CoreStoreObject, O: CoreStoreObject, T, K: AllowedCoreStoreObjectKeyPathValue>(_ lhs: Where<D>.Expression<T, O?>, _ rhs: KeyPath<O, K>) -> Where<D>.Expression<T, K.ValueType> where K.ObjectType == O {
return .init(
lhs.cs_keyPathString,
O.meta[keyPath: rhs].cs_keyPathString
)
}
public func ~<D: CoreStoreObject, O: CoreStoreObject, T, K: AllowedCoreStoreObjectCollectionKeyPathValue>(_ lhs: Where<D>.Expression<T, O?>, _ rhs: KeyPath<O, K>) -> Where<D>.Expression<Where<D>.CollectionTarget, K.ValueType> where K.ObjectType == O {
return .init(
lhs.cs_keyPathString,
O.meta[keyPath: rhs].cs_keyPathString
)
}
public func ~<D: CoreStoreObject, O: CoreStoreObject, T, KC: AllowedCoreStoreObjectCollectionKeyPathValue, KV: AllowedCoreStoreObjectKeyPathValue>(_ lhs: Where<D>.Expression<T, KC>, _ rhs: KeyPath<O, KV>) -> Where<D>.Expression<Where<D>.CollectionTarget, KV.ValueType> where KC.ObjectType == D, KV.ObjectType == O {
/**
Connects multiple `DynamicKeyPath`s to create a type-safe chain usable in query/fetch expressions
```
let spousesWithBadNamingSense = CoreStore.fetchAll(From<Pet>().where((\.master ~ \.pets ~ \.name).any() == "Spot"))
```
*/
public func ~ <D: CoreStoreObject, O: CoreStoreObject, T, KC: AllowedCoreStoreObjectCollectionKeyPathValue, KV: AllowedCoreStoreObjectKeyPathValue>(_ lhs: Where<D>.Expression<T, KC>, _ rhs: KeyPath<O, KV>) -> Where<D>.Expression<Where<D>.CollectionTarget, KV.ValueType> where KC.ObjectType == D, KV.ObjectType == O {
return .init(
lhs.cs_keyPathString,
@@ -202,16 +330,34 @@ public func ~<D: CoreStoreObject, O: CoreStoreObject, T, KC: AllowedCoreStoreObj
// MARK: - Where.Expression where V: QueryableAttributeType
/**
Creates a `Where` clause by comparing if an expression is equal to a value
```
let dog = CoreStore.fetchOne(From<Dog>().where((\.master ~ \.name) == "John"))
```
*/
public func == <D, T, V: QueryableAttributeType>(_ lhs: Where<D>.Expression<T, V>, _ rhs: V) -> Where<D> {
return Where<D>(lhs.cs_keyPathString, isEqualTo: rhs)
}
/**
Creates a `Where` clause by comparing if an expression is not equal to a value
```
let dog = CoreStore.fetchOne(From<Dog>().where((\.master ~ \.name) != "John"))
```
*/
public func != <D, T, V: QueryableAttributeType>(_ lhs: Where<D>.Expression<T, V>, _ rhs: V) -> Where<D> {
return !Where<D>(lhs.cs_keyPathString, isEqualTo: rhs)
}
/**
Creates a `Where` clause by checking if a sequence contains a value
```
let dog = CoreStore.fetchOne(From<Dog>().where(["John", "Joe"] ~= (\.master ~ \.name))
```
*/
public func ~= <D, T, V: QueryableAttributeType, S: Sequence>(_ sequence: S, _ expression: Where<D>.Expression<T, V>) -> Where<D> where S.Iterator.Element == V {
return Where<D>(expression.cs_keyPathString, isMemberOf: sequence)
@@ -220,21 +366,45 @@ public func ~= <D, T, V: QueryableAttributeType, S: Sequence>(_ sequence: S, _ e
// MARK: - Where.Expression where V: QueryableAttributeType & Comparable
/**
Creates a `Where` clause by comparing if an expression is less than a value
```
let lonelyDog = CoreStore.fetchOne(From<Dog>().where((\.master ~ \.pets).count() < 2))
```
*/
public func < <D, T, V: QueryableAttributeType & Comparable>(_ lhs: Where<D>.Expression<T, V>, _ rhs: V) -> Where<D> {
return Where<D>(expression: lhs, function: "<", operand: rhs)
}
/**
Creates a `Where` clause by comparing if an expression is less than or equal to a value
```
let lonelyDog = CoreStore.fetchOne(From<Dog>().where((\.master ~ \.pets).count() <= 1)
```
*/
public func <= <D, T, V: QueryableAttributeType & Comparable>(_ lhs: Where<D>.Expression<T, V>, _ rhs: V) -> Where<D> {
return Where<D>(expression: lhs, function: "<=", operand: rhs)
}
/**
Creates a `Where` clause by comparing if an expression is greater than a value
```
let happyDog = CoreStore.fetchOne(From<Dog>().where((\.master ~ \.pets).count() > 1)
```
*/
public func > <D, T, V: QueryableAttributeType & Comparable>(_ lhs: Where<D>.Expression<T, V>, _ rhs: V) -> Where<D> {
return Where<D>(expression: lhs, function: ">", operand: rhs)
}
/**
Creates a `Where` clause by comparing if an expression is greater than or equal to a value
```
let happyDog = CoreStore.fetchOne(From<Dog>().where((\.master ~ \.pets).count() >= 2)
```
*/
public func >= <D, T, V: QueryableAttributeType & Comparable>(_ lhs: Where<D>.Expression<T, V>, _ rhs: V) -> Where<D> {
return Where<D>(expression: lhs, function: ">=", operand: rhs)
@@ -243,26 +413,56 @@ public func >= <D, T, V: QueryableAttributeType & Comparable>(_ lhs: Where<D>.Ex
// MARK: - Where.Expression where V: Optional<QueryableAttributeType>
/**
Creates a `Where` clause by comparing if an expression is equal to a value
```
let dog = CoreStore.fetchOne(From<Dog>().where((\.master ~ \.name) == "John"))
```
*/
public func == <D, T, V: QueryableAttributeType>(_ lhs: Where<D>.Expression<T, V?>, _ rhs: V) -> Where<D> {
return Where<D>(lhs.cs_keyPathString, isEqualTo: rhs)
}
/**
Creates a `Where` clause by comparing if an expression is equal to a value
```
let dog = CoreStore.fetchOne(From<Dog>().where((\.master ~ \.name) == "John"))
```
*/
public func == <D, T, V: QueryableAttributeType>(_ lhs: Where<D>.Expression<T, V?>, _ rhs: V?) -> Where<D> {
return Where<D>(lhs.cs_keyPathString, isEqualTo: rhs)
}
/**
Creates a `Where` clause by comparing if an expression is equal to a value
```
let dog = CoreStore.fetchOne(From<Dog>().where((\.master ~ \.name) != "John"))
```
*/
public func != <D, T, V: QueryableAttributeType>(_ lhs: Where<D>.Expression<T, V?>, _ rhs: V) -> Where<D> {
return !Where<D>(lhs.cs_keyPathString, isEqualTo: rhs)
}
/**
Creates a `Where` clause by comparing if an expression is equal to a value
```
let dog = CoreStore.fetchOne(From<Dog>().where((\.master ~ \.name) != "John"))
```
*/
public func != <D, T, V: QueryableAttributeType>(_ lhs: Where<D>.Expression<T, V?>, _ rhs: V?) -> Where<D> {
return !Where<D>(lhs.cs_keyPathString, isEqualTo: rhs)
}
/**
Creates a `Where` clause by checking if a sequence contains a value
```
let dog = CoreStore.fetchOne(From<Dog>().where(["John", "Joe"] ~= (\.master ~ \.name))
```
*/
public func ~= <D, T, V: QueryableAttributeType, S: Sequence>(_ sequence: S, _ expression: Where<D>.Expression<T, V?>) -> Where<D> where S.Iterator.Element == V {
return Where<D>(expression.cs_keyPathString, isMemberOf: sequence)
@@ -271,21 +471,45 @@ public func ~= <D, T, V: QueryableAttributeType, S: Sequence>(_ sequence: S, _ e
// MARK: - Where.Expression where V: Optional<QueryableAttributeType & Comparable>
/**
Creates a `Where` clause by comparing if an expression is less than a value
```
let childsPet = CoreStore.fetchOne(From<Dog>().where((\.master ~ \.age) < 10))
```
*/
public func < <D, T, V: QueryableAttributeType & Comparable>(_ lhs: Where<D>.Expression<T, V?>, _ rhs: V) -> Where<D> {
return Where<D>(expression: lhs, function: "<", operand: rhs)
}
/**
Creates a `Where` clause by comparing if an expression is less than or equal to a value
```
let childsPet = CoreStore.fetchOne(From<Dog>().where((\.master ~ \.age) <= 10))
```
*/
public func <= <D, T, V: QueryableAttributeType & Comparable>(_ lhs: Where<D>.Expression<T, V?>, _ rhs: V?) -> Where<D> {
return Where<D>(expression: lhs, function: "<=", operand: rhs)
}
/**
Creates a `Where` clause by comparing if an expression is greater than a value
```
let teensPet = CoreStore.fetchOne(From<Dog>().where((\.master ~ \.age) > 10))
```
*/
public func > <D, T, V: QueryableAttributeType & Comparable>(_ lhs: Where<D>.Expression<T, V?>, _ rhs: V) -> Where<D> {
return Where<D>(expression: lhs, function: ">", operand: rhs)
}
/**
Creates a `Where` clause by comparing if an expression is greater than or equal to a value
```
let teensPet = CoreStore.fetchOne(From<Dog>().where((\.master ~ \.age) >= 10))
```
*/
public func >= <D, T, V: QueryableAttributeType & Comparable>(_ lhs: Where<D>.Expression<T, V?>, _ rhs: V?) -> Where<D> {
return Where<D>(expression: lhs, function: ">=", operand: rhs)
@@ -296,6 +520,12 @@ public func >= <D, T, V: QueryableAttributeType & Comparable>(_ lhs: Where<D>.Ex
extension KeyPath where Root: NSManagedObject, Value: AllowedObjectiveCCollectionKeyPathValue {
/**
Creates a `Where.Expression` clause for COUNT
```
let dogsWithPlaymates = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets).count() > 1))
```
*/
public func count() -> Where<Root>.Expression<Where<Root>.CollectionTarget, Int> {
return .init(self.cs_keyPathString, "@count")
@@ -306,6 +536,12 @@ extension KeyPath where Root: NSManagedObject, Value: AllowedObjectiveCCollectio
extension Where.Expression where D: NSManagedObject, T == Where<D>.CollectionTarget, V: AllowedObjectiveCCollectionKeyPathValue {
/**
Creates a `Where.Expression` clause for COUNT
```
let dogsWithPlaymates = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets).count() > 1))
```
*/
public func count() -> Where<D>.Expression<T, Int> {
return .init(self.cs_keyPathString, "@count")
@@ -317,16 +553,34 @@ extension Where.Expression where D: NSManagedObject, T == Where<D>.CollectionTar
extension Where.Expression where D: NSManagedObject, T == Where<D>.CollectionTarget, V: AllowedObjectiveCKeyPathValue {
/**
Creates a `Where.Expression` clause for ANY
```
let dogsWithBadNamingSense = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets ~ \.name).any() > "Spot"))
```
*/
public func any() -> Where<D>.Expression<T, V> {
return .init("ANY " + self.cs_keyPathString)
}
/**
Creates a `Where.Expression` clause for ALL
```
let allPlaymatePuppies = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets ~ \.age).all() > 5))
```
*/
public func all() -> Where<D>.Expression<T, V> {
return .init("ALL " + self.cs_keyPathString)
}
/**
Creates a `Where.Expression` clause for NONE
```
let dogs = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets ~ \.name).any() > "Spot"))
```
*/
public func none() -> Where<D>.Expression<T, V> {
return .init("NONE " + self.cs_keyPathString)
@@ -338,6 +592,12 @@ extension Where.Expression where D: NSManagedObject, T == Where<D>.CollectionTar
extension KeyPath where Root: CoreStoreObject, Value: AllowedCoreStoreObjectCollectionKeyPathValue {
/**
Creates a `Where.Expression` clause for COUNT
```
let dogsWithPlaymates = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets).count() > 1))
```
*/
public func count() -> Where<Root>.Expression<Where<Root>.CollectionTarget, Int> {
return .init(Root.meta[keyPath: self].cs_keyPathString, "@count")
@@ -349,21 +609,45 @@ extension KeyPath where Root: CoreStoreObject, Value: AllowedCoreStoreObjectColl
extension Where.Expression where D: CoreStoreObject, T == Where<D>.CollectionTarget {
/**
Creates a `Where.Expression` clause for COUNT
```
let dogsWithPlaymates = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets).count() > 1))
```
*/
public func count() -> Where<D>.Expression<T, Int> {
return .init(self.cs_keyPathString, "@count")
}
/**
Creates a `Where.Expression` clause for ANY
```
let dogsWithBadNamingSense = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets ~ \.name).any() > "Spot"))
```
*/
public func any() -> Where<D>.Expression<T, V> {
return .init("ANY " + self.cs_keyPathString)
}
/**
Creates a `Where.Expression` clause for ALL
```
let allPlaymatePuppies = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets ~ \.age).all() > 5))
```
*/
public func all() -> Where<D>.Expression<T, V> {
return .init("ALL " + self.cs_keyPathString)
}
/**
Creates a `Where.Expression` clause for NONE
```
let dogs = CoreStore.fetchAll(From<Dog>().where((\.master ~ \.pets ~ \.name).any() > "Spot"))
```
*/
public func none() -> Where<D>.Expression<T, V> {
return .init("NONE " + self.cs_keyPathString)

View File

@@ -545,49 +545,3 @@ extension Sequence where Iterator.Element: WhereClauseType {
return Where(NSCompoundPredicate(type: .or, subpredicates: self.map({ $0.predicate })))
}
}
// MARK: - Deprecated
extension Where {
@available(*, deprecated, renamed: "&&?")
public static func && (left: Where<D>, right: Where<D>?) -> Where<D> {
if let right = right {
return left && right
}
return left
}
@available(*, deprecated, renamed: "&&?")
public static func && (left: Where<D>?, right: Where<D>) -> Where<D> {
if let left = left {
return left && right
}
return right
}
@available(*, deprecated, renamed: "||?")
public static func || (left: Where<D>, right: Where<D>?) -> Where<D> {
if let right = right {
return left || right
}
return left
}
@available(*, deprecated, renamed: "||?")
public static func || (left: Where<D>?, right: Where<D>) -> Where<D> {
if let left = left {
return left || right
}
return right
}
}

View File

@@ -29,7 +29,7 @@ import Foundation
// MARK: - WhereClauseType
/**
Abstracts the `Where` clause for protocol utilities.
Abstracts the `Where` clause for protocol utilities. Typically used only for utility method generic constraints.
*/
public protocol WhereClauseType: AnyWhereClause {

View File

@@ -23,7 +23,7 @@
<a class="header-link" href="index.html">
CoreStore Docs
</a>
(88% documented)
(90% documented)
</p>
<p class="header-col--secondary">
@@ -56,9 +56,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/AsynchronousDataTransaction.html">AsynchronousDataTransaction</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/AsynchronousDataTransaction/Result.html"> Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/BaseDataTransaction.html">BaseDataTransaction</a>
</li>
@@ -182,9 +179,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/Entity.html">Entity</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/ICloudStore.html">ICloudStore</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Classes/InMemoryStore.html">InMemoryStore</a>
</li>
@@ -252,9 +246,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums.html#/s:9CoreStore8LogLevelO">LogLevel</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/MigrationResult.html">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/MigrationType.html">MigrationType</a>
</li>
@@ -273,9 +264,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/SelectTerm.html">SelectTerm</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/SetupResult.html">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Enums/TransformableContainer.html">TransformableContainer</a>
</li>
@@ -338,12 +326,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/KeyPathString.html">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/NSAttributeType.html">NSAttributeType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/NSData.html">NSData</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/NSDate.html">NSDate</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/NSDeleteRule.html">NSDeleteRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/NSManagedObject.html">NSManagedObject</a>
</li>
@@ -374,6 +368,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/RawRepresentable.html">RawRepresentable</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/Result.html">Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/Selector.html">Selector</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Extensions/Sequence.html">Sequence</a>
</li>
@@ -391,6 +391,15 @@
<li class="nav-group-name">
<a class="nav-group-name-link" href="Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">!=(_:_:)</a>
</li>
@@ -421,6 +430,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;(_:_:)</a>
</li>
@@ -433,6 +448,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;=(_:_:)</a>
</li>
@@ -445,6 +466,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">==(_:_:)</a>
</li>
@@ -475,6 +505,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;(_:_:)</a>
</li>
@@ -487,6 +523,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;=(_:_:)</a>
</li>
@@ -499,6 +541,54 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboeijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzARRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzASRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtAA0aB6ObjectCRbz0kH0Qy1_RszARRb_ASQy2_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_AA0mabkijG0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAQRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_AA0lm4CKeyhO0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAORb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAPRb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAMRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzANRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GGtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_7ElementQy0_Rs_STR0_r1_lF">~=(_:_:)</a>
</li>
@@ -526,11 +616,32 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxq_SgGtSo15NSManagedObjectCRbzAKRb_STR0_So0gH2IDC7ElementRt0_r1_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_GtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_SgGtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols.html#/s:9CoreStore07AllowedaB28ObjectCollectionKeyPathValueP">AllowedCoreStoreObjectCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols.html#/s:9CoreStore07AllowedaB18ObjectKeyPathValueP">AllowedCoreStoreObjectKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols.html#/s:9CoreStore39AllowedObjectiveCCollectionKeyPathValueP">AllowedObjectiveCCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols.html#/s:9CoreStore29AllowedObjectiveCKeyPathValueP">AllowedObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols.html#/s:9CoreStore37AllowedOptionalObjectiveCKeyPathValueP">AllowedOptionalObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/AnyWhereClause.html">AnyWhereClause</a>
</li>
@@ -606,9 +717,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/GroupByClause.html">GroupByClause</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/ICloudStoreObserver.html">ICloudStoreObserver</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols.html#/s:9CoreStore23ImportableAttributeTypeP">ImportableAttributeType</a>
</li>
@@ -669,6 +777,9 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols/WhereClauseType.html">WhereClauseType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Protocols.html#/s:9CoreStore20WhereExpressionTraitP">WhereExpressionTrait</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -725,6 +836,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/Where.html">Where</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/Where/Expression.html"> Expression</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/Where.html#/s:9CoreStore5WhereV12SingleTargetO"> SingleTarget</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Structs/Where.html#/s:9CoreStore5WhereV16CollectionTargetO"> CollectionTarget</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -739,12 +859,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="Typealiases.html#/s:9CoreStore13KeyPathStringa">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Typealiases.html#/s:9CoreStore15MigrationResulta">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Typealiases.html#/s:9CoreStore18ModelConfigurationa">ModelConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Typealiases.html#/s:9CoreStore12ModelVersiona">ModelVersion</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Typealiases.html#/s:9CoreStore11SetupResulta">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="Typealiases.html#/s:9CoreStore22XcodeDataModelFileNamea">XcodeDataModelFileName</a>
</li>
@@ -786,7 +912,7 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The <code>AsynchronousDataTransaction</code> provides an interface for <code><a href="Protocols/DynamicObject.html">DynamicObject</a></code> creates, updates, and deletes. A transaction object should typically be only used from within a transaction block initiated from <code><a href="Classes/DataStack.html#/s:9CoreStore9DataStackC7perform12asynchronous10completionyxAA012AsynchronousC11TransactionCKc_yAH6ResultOy_xGctlF">DataStack.perform(asynchronous:...)</a></code>, or from <code><a href="Enums/CoreStore.html#/s:9CoreStoreAAO7perform11synchronous19waitForAllObserversxxAA26SynchronousDataTransactionCKXE_SbtKlFZ">CoreStore.perform(synchronous:...)</a></code>.</p>
<p>The <code>AsynchronousDataTransaction</code> provides an interface for <code><a href="Protocols/DynamicObject.html">DynamicObject</a></code> creates, updates, and deletes. A transaction object should typically be only used from within a transaction block initiated from <code><a href="Classes/DataStack.html#/s:9CoreStore9DataStackC7perform12asynchronous10completionyxAA012AsynchronousC11TransactionCKc_ys6ResultOyxAA0aB5ErrorOGctlF">DataStack.perform(asynchronous:...)</a></code>, or from <code><a href="Enums/CoreStore.html#/s:9CoreStoreAAO7perform11synchronous19waitForAllObserversxxAA26SynchronousDataTransactionCKXE_SbtKlFZ">CoreStore.perform(synchronous:...)</a></code>.</p>
<a href="Classes/AsynchronousDataTransaction.html" class="slightly-smaller">See more</a>
</div>
@@ -1393,10 +1519,10 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The <code>CSMigrationResult</code> serves as the Objective-C bridging type for <code><a href="Enums/MigrationResult.html">MigrationResult</a></code>.</p>
<p>The <code>CSMigrationResult</code> serves as the Objective-C bridging type for <code><a href="Typealiases.html#/s:9CoreStore15MigrationResulta">MigrationResult</a></code>.</p>
<div class="aside aside-see-also">
<p class="aside-title">See also</p>
<code><a href="Enums/MigrationResult.html">MigrationResult</a></code>
<code><a href="Typealiases.html#/s:9CoreStore15MigrationResulta">MigrationResult</a></code>
</div>
@@ -1799,10 +1925,10 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The <code>CSSetupResult</code> serves as the Objective-C bridging type for <code><a href="Enums/SetupResult.html">SetupResult</a></code>.</p>
<p>The <code>CSSetupResult</code> serves as the Objective-C bridging type for <code><a href="Typealiases.html#/s:9CoreStore11SetupResulta">SetupResult</a></code>.</p>
<div class="aside aside-see-also">
<p class="aside-title">See also</p>
<code><a href="Enums/SetupResult.html">SetupResult</a></code>
<code><a href="Typealiases.html#/s:9CoreStore11SetupResulta">SetupResult</a></code>
</div>
@@ -2473,46 +2599,6 @@
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/ICloudStore"></a>
<a name="//apple_ref/swift/Section/ICloudStore" class="dashAnchor"></a>
<a href="#/ICloudStore">
<h3 class="section-name">ICloudStore</h3>
</a>
</div>
<ul class="item-container">
<li class="item">
<div>
<code>
<a name="/s:9CoreStore06ICloudB0C"></a>
<a name="//apple_ref/swift/Class/ICloudStore" class="dashAnchor"></a>
<a class="token" href="#/s:9CoreStore06ICloudB0C">ICloudStore</a>
</code>
</div>
<div class="height-container">
<div class="pointer-container"></div>
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>A storage interface backed by an SQLite database managed by iCloud.</p>
<a href="Classes/ICloudStore.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">@available(*, deprecated, message: "Please see the release notes and Core Data documentation.")</span>
<span class="kd">public</span> <span class="kd">final</span> <span class="kd">class</span> <span class="kt">ICloudStore</span> <span class="p">:</span> <span class="kt"><a href="Protocols/CloudStorage.html">CloudStorage</a></span></code></pre>
</div>
</div>
</section>
</div>
</li>
</ul>
</div>
<div class="task-group">
<div class="task-name-container">
<a name="/ListMonitor"></a>
@@ -3008,6 +3094,11 @@ Observers registered via <code>addObserver(_:)</code> are not retained. <code>Li
<div class="pointer"></div>
<div class="abstract">
<p>A <code><a href="Protocols/SchemaMappingProvider.html">SchemaMappingProvider</a></code> that tries to infer model migration between two <code><a href="Protocols/DynamicSchema.html">DynamicSchema</a></code> versions by searching all <code>xcmappingmodel</code>s from <code>Bundle.allBundles</code> or by relying on lightweight migration if possible. Throws an error if lightweight migration is impossible for the two <code><a href="Protocols/DynamicSchema.html">DynamicSchema</a></code>. This mapping is automatically used as a fallback mapping provider, even if no mapping providers are explicitly declared in the <code><a href="Protocols/StorageInterface.html">StorageInterface</a></code>.</p>
<div class="aside aside-note">
<p class="aside-title">Note</p>
For security reasons, <code>InferredSchemaMappingProvider</code> will not search <code>Bundle.allFrameworks</code> by default. If the <code>xcmappingmodel</code>s are bundled within a framework, use <code><a href="Classes/XcodeSchemaMappingProvider.html">XcodeSchemaMappingProvider</a></code> instead and provide <code>Bundle(for: &lt;a class in the framework&gt;</code> to its initializer.
</div>
<a href="Classes/InferredSchemaMappingProvider.html" class="slightly-smaller">See more</a>
</div>
@@ -3118,8 +3209,8 @@ Observers registered via <code>addObserver(_:)</code> are not retained. <code>Li
</article>
</div>
<section class="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2018-12-19)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
<p>&copy; 2019 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2019-03-31)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.5</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</body>
</div>

View File

@@ -23,7 +23,7 @@
<a class="header-link" href="../index.html">
CoreStore Docs
</a>
(88% documented)
(90% documented)
</p>
<p class="header-col--secondary">
@@ -56,9 +56,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction.html">AsynchronousDataTransaction</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction/Result.html"> Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/BaseDataTransaction.html">BaseDataTransaction</a>
</li>
@@ -182,9 +179,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/Entity.html">Entity</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/ICloudStore.html">ICloudStore</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/InMemoryStore.html">InMemoryStore</a>
</li>
@@ -252,9 +246,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums.html#/s:9CoreStore8LogLevelO">LogLevel</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationResult.html">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationType.html">MigrationType</a>
</li>
@@ -273,9 +264,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SelectTerm.html">SelectTerm</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SetupResult.html">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/TransformableContainer.html">TransformableContainer</a>
</li>
@@ -338,12 +326,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/KeyPathString.html">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSAttributeType.html">NSAttributeType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSData.html">NSData</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDate.html">NSDate</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDeleteRule.html">NSDeleteRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSManagedObject.html">NSManagedObject</a>
</li>
@@ -374,6 +368,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/RawRepresentable.html">RawRepresentable</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Result.html">Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Selector.html">Selector</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Sequence.html">Sequence</a>
</li>
@@ -391,6 +391,15 @@
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">!=(_:_:)</a>
</li>
@@ -421,6 +430,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;(_:_:)</a>
</li>
@@ -433,6 +448,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;=(_:_:)</a>
</li>
@@ -445,6 +466,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">==(_:_:)</a>
</li>
@@ -475,6 +505,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;(_:_:)</a>
</li>
@@ -487,6 +523,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;=(_:_:)</a>
</li>
@@ -499,6 +541,54 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboeijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzARRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzASRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtAA0aB6ObjectCRbz0kH0Qy1_RszARRb_ASQy2_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_AA0mabkijG0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAQRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_AA0lm4CKeyhO0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAORb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAPRb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAMRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzANRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GGtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_7ElementQy0_Rs_STR0_r1_lF">~=(_:_:)</a>
</li>
@@ -526,11 +616,32 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxq_SgGtSo15NSManagedObjectCRbzAKRb_STR0_So0gH2IDC7ElementRt0_r1_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_GtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_SgGtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB28ObjectCollectionKeyPathValueP">AllowedCoreStoreObjectCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB18ObjectKeyPathValueP">AllowedCoreStoreObjectKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore39AllowedObjectiveCCollectionKeyPathValueP">AllowedObjectiveCCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore29AllowedObjectiveCKeyPathValueP">AllowedObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore37AllowedOptionalObjectiveCKeyPathValueP">AllowedOptionalObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/AnyWhereClause.html">AnyWhereClause</a>
</li>
@@ -606,9 +717,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/GroupByClause.html">GroupByClause</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ICloudStoreObserver.html">ICloudStoreObserver</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore23ImportableAttributeTypeP">ImportableAttributeType</a>
</li>
@@ -669,6 +777,9 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/WhereClauseType.html">WhereClauseType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore20WhereExpressionTraitP">WhereExpressionTrait</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -725,6 +836,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html">Where</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where/Expression.html"> Expression</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV12SingleTargetO"> SingleTarget</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV16CollectionTargetO"> CollectionTarget</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -739,12 +859,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore13KeyPathStringa">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore15MigrationResulta">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore18ModelConfigurationa">ModelConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore12ModelVersiona">ModelVersion</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore11SetupResulta">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore22XcodeDataModelFileNamea">XcodeDataModelFileName</a>
</li>
@@ -763,7 +889,7 @@
</div>
</div>
<p>The <code>AsynchronousDataTransaction</code> provides an interface for <code><a href="../Protocols/DynamicObject.html">DynamicObject</a></code> creates, updates, and deletes. A transaction object should typically be only used from within a transaction block initiated from <code><a href="../Classes/DataStack.html#/s:9CoreStore9DataStackC7perform12asynchronous10completionyxAA012AsynchronousC11TransactionCKc_yAH6ResultOy_xGctlF">DataStack.perform(asynchronous:...)</a></code>, or from <code><a href="../Enums/CoreStore.html#/s:9CoreStoreAAO7perform11synchronous19waitForAllObserversxxAA26SynchronousDataTransactionCKXE_SbtKlFZ">CoreStore.perform(synchronous:...)</a></code>.</p>
<p>The <code>AsynchronousDataTransaction</code> provides an interface for <code><a href="../Protocols/DynamicObject.html">DynamicObject</a></code> creates, updates, and deletes. A transaction object should typically be only used from within a transaction block initiated from <code><a href="../Classes/DataStack.html#/s:9CoreStore9DataStackC7perform12asynchronous10completionyxAA012AsynchronousC11TransactionCKc_ys6ResultOyxAA0aB5ErrorOGctlF">DataStack.perform(asynchronous:...)</a></code>, or from <code><a href="../Enums/CoreStore.html#/s:9CoreStoreAAO7perform11synchronous19waitForAllObserversxxAA26SynchronousDataTransactionCKXE_SbtKlFZ">CoreStore.perform(synchronous:...)</a></code>.</p>
</div>
</section>
@@ -820,9 +946,9 @@
<li class="item">
<div>
<code>
<a name="/s:9CoreStore27AsynchronousDataTransactionC6ResultO"></a>
<a name="//apple_ref/swift/Enum/Result" class="dashAnchor"></a>
<a class="token" href="#/s:9CoreStore27AsynchronousDataTransactionC6ResultO">Result</a>
<a name="/s:9CoreStore27AsynchronousDataTransactionC6Resulta"></a>
<a name="//apple_ref/swift/Alias/Result" class="dashAnchor"></a>
<a class="token" href="#/s:9CoreStore27AsynchronousDataTransactionC6Resulta">Result</a>
</code>
</div>
<div class="height-container">
@@ -830,15 +956,16 @@
<section class="section">
<div class="pointer"></div>
<div class="abstract">
<p>The <code>Result</code> contains the success or failure information for a completed transaction</p>
<p>The <code>Result</code> contains the success or failure information for a completed transaction.
<code>Result&lt;T&gt;.success</code> indicates that the transaction succeeded, either because the save succeeded or because there were no changes to save. The associated <code>userInfo</code> is the value returned from the transaction closure.
<code>Result&lt;T&gt;.failure</code> indicates that the transaction either failed or was cancelled. The associated object for this value is a <code><a href="../Enums/CoreStoreError.html">CoreStoreError</a></code> enum value.</p>
<a href="../Classes/AsynchronousDataTransaction/Result.html" class="slightly-smaller">See more</a>
</div>
<div class="declaration">
<h4>Declaration</h4>
<div class="language">
<p class="aside-title">Swift</p>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">enum</span> <span class="kt">Result</span><span class="o">&lt;</span><span class="kt">T</span><span class="o">&gt;</span></code></pre>
<pre class="highlight swift"><code><span class="kd">public</span> <span class="kd">typealias</span> <span class="kt">Result</span><span class="o">&lt;</span><span class="kt">UserInfoType</span><span class="o">&gt;</span> <span class="o">=</span> <span class="kt">Swift</span><span class="o">.</span><span class="kt">Result</span><span class="o">&lt;</span><span class="kt">UserInfoType</span><span class="p">,</span> <span class="kt"><a href="../Enums/CoreStoreError.html">CoreStoreError</a></span><span class="o">&gt;</span></code></pre>
</div>
</div>
@@ -1262,8 +1389,8 @@
</article>
</div>
<section class="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2018-12-19)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
<p>&copy; 2019 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2019-03-31)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.5</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</body>
</div>

File diff suppressed because it is too large Load Diff

View File

@@ -23,7 +23,7 @@
<a class="header-link" href="../index.html">
CoreStore Docs
</a>
(88% documented)
(90% documented)
</p>
<p class="header-col--secondary">
@@ -56,9 +56,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction.html">AsynchronousDataTransaction</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction/Result.html"> Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/BaseDataTransaction.html">BaseDataTransaction</a>
</li>
@@ -182,9 +179,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/Entity.html">Entity</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/ICloudStore.html">ICloudStore</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/InMemoryStore.html">InMemoryStore</a>
</li>
@@ -252,9 +246,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums.html#/s:9CoreStore8LogLevelO">LogLevel</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationResult.html">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationType.html">MigrationType</a>
</li>
@@ -273,9 +264,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SelectTerm.html">SelectTerm</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SetupResult.html">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/TransformableContainer.html">TransformableContainer</a>
</li>
@@ -338,12 +326,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/KeyPathString.html">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSAttributeType.html">NSAttributeType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSData.html">NSData</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDate.html">NSDate</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDeleteRule.html">NSDeleteRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSManagedObject.html">NSManagedObject</a>
</li>
@@ -374,6 +368,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/RawRepresentable.html">RawRepresentable</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Result.html">Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Selector.html">Selector</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Sequence.html">Sequence</a>
</li>
@@ -391,6 +391,15 @@
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">!=(_:_:)</a>
</li>
@@ -421,6 +430,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;(_:_:)</a>
</li>
@@ -433,6 +448,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;=(_:_:)</a>
</li>
@@ -445,6 +466,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">==(_:_:)</a>
</li>
@@ -475,6 +505,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;(_:_:)</a>
</li>
@@ -487,6 +523,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;=(_:_:)</a>
</li>
@@ -499,6 +541,54 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboeijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzARRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzASRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtAA0aB6ObjectCRbz0kH0Qy1_RszARRb_ASQy2_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_AA0mabkijG0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAQRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_AA0lm4CKeyhO0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAORb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAPRb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAMRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzANRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GGtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_7ElementQy0_Rs_STR0_r1_lF">~=(_:_:)</a>
</li>
@@ -526,11 +616,32 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxq_SgGtSo15NSManagedObjectCRbzAKRb_STR0_So0gH2IDC7ElementRt0_r1_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_GtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_SgGtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB28ObjectCollectionKeyPathValueP">AllowedCoreStoreObjectCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB18ObjectKeyPathValueP">AllowedCoreStoreObjectKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore39AllowedObjectiveCCollectionKeyPathValueP">AllowedObjectiveCCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore29AllowedObjectiveCKeyPathValueP">AllowedObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore37AllowedOptionalObjectiveCKeyPathValueP">AllowedOptionalObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/AnyWhereClause.html">AnyWhereClause</a>
</li>
@@ -606,9 +717,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/GroupByClause.html">GroupByClause</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ICloudStoreObserver.html">ICloudStoreObserver</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore23ImportableAttributeTypeP">ImportableAttributeType</a>
</li>
@@ -669,6 +777,9 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/WhereClauseType.html">WhereClauseType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore20WhereExpressionTraitP">WhereExpressionTrait</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -725,6 +836,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html">Where</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where/Expression.html"> Expression</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV12SingleTargetO"> SingleTarget</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV16CollectionTargetO"> CollectionTarget</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -739,12 +859,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore13KeyPathStringa">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore15MigrationResulta">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore18ModelConfigurationa">ModelConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore12ModelVersiona">ModelVersion</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore11SetupResulta">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore22XcodeDataModelFileNamea">XcodeDataModelFileName</a>
</li>
@@ -1204,8 +1330,8 @@
</article>
</div>
<section class="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2018-12-19)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
<p>&copy; 2019 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2019-03-31)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.5</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</body>
</div>

View File

@@ -23,7 +23,7 @@
<a class="header-link" href="../index.html">
CoreStore Docs
</a>
(88% documented)
(90% documented)
</p>
<p class="header-col--secondary">
@@ -56,9 +56,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction.html">AsynchronousDataTransaction</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction/Result.html"> Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/BaseDataTransaction.html">BaseDataTransaction</a>
</li>
@@ -182,9 +179,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/Entity.html">Entity</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/ICloudStore.html">ICloudStore</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/InMemoryStore.html">InMemoryStore</a>
</li>
@@ -252,9 +246,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums.html#/s:9CoreStore8LogLevelO">LogLevel</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationResult.html">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationType.html">MigrationType</a>
</li>
@@ -273,9 +264,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SelectTerm.html">SelectTerm</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SetupResult.html">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/TransformableContainer.html">TransformableContainer</a>
</li>
@@ -338,12 +326,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/KeyPathString.html">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSAttributeType.html">NSAttributeType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSData.html">NSData</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDate.html">NSDate</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDeleteRule.html">NSDeleteRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSManagedObject.html">NSManagedObject</a>
</li>
@@ -374,6 +368,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/RawRepresentable.html">RawRepresentable</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Result.html">Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Selector.html">Selector</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Sequence.html">Sequence</a>
</li>
@@ -391,6 +391,15 @@
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">!=(_:_:)</a>
</li>
@@ -421,6 +430,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;(_:_:)</a>
</li>
@@ -433,6 +448,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;=(_:_:)</a>
</li>
@@ -445,6 +466,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">==(_:_:)</a>
</li>
@@ -475,6 +505,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;(_:_:)</a>
</li>
@@ -487,6 +523,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;=(_:_:)</a>
</li>
@@ -499,6 +541,54 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboeijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzARRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzASRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtAA0aB6ObjectCRbz0kH0Qy1_RszARRb_ASQy2_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_AA0mabkijG0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAQRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_AA0lm4CKeyhO0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAORb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAPRb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAMRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzANRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GGtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_7ElementQy0_Rs_STR0_r1_lF">~=(_:_:)</a>
</li>
@@ -526,11 +616,32 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxq_SgGtSo15NSManagedObjectCRbzAKRb_STR0_So0gH2IDC7ElementRt0_r1_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_GtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_SgGtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB28ObjectCollectionKeyPathValueP">AllowedCoreStoreObjectCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB18ObjectKeyPathValueP">AllowedCoreStoreObjectKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore39AllowedObjectiveCCollectionKeyPathValueP">AllowedObjectiveCCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore29AllowedObjectiveCKeyPathValueP">AllowedObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore37AllowedOptionalObjectiveCKeyPathValueP">AllowedOptionalObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/AnyWhereClause.html">AnyWhereClause</a>
</li>
@@ -606,9 +717,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/GroupByClause.html">GroupByClause</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ICloudStoreObserver.html">ICloudStoreObserver</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore23ImportableAttributeTypeP">ImportableAttributeType</a>
</li>
@@ -669,6 +777,9 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/WhereClauseType.html">WhereClauseType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore20WhereExpressionTraitP">WhereExpressionTrait</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -725,6 +836,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html">Where</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where/Expression.html"> Expression</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV12SingleTargetO"> SingleTarget</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV16CollectionTargetO"> CollectionTarget</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -739,12 +859,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore13KeyPathStringa">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore15MigrationResulta">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore18ModelConfigurationa">ModelConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore12ModelVersiona">ModelVersion</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore11SetupResulta">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore22XcodeDataModelFileNamea">XcodeDataModelFileName</a>
</li>
@@ -2142,8 +2268,8 @@
</article>
</div>
<section class="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2018-12-19)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
<p>&copy; 2019 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2019-03-31)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.5</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</body>
</div>

View File

@@ -23,7 +23,7 @@
<a class="header-link" href="../index.html">
CoreStore Docs
</a>
(88% documented)
(90% documented)
</p>
<p class="header-col--secondary">
@@ -56,9 +56,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction.html">AsynchronousDataTransaction</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction/Result.html"> Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/BaseDataTransaction.html">BaseDataTransaction</a>
</li>
@@ -182,9 +179,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/Entity.html">Entity</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/ICloudStore.html">ICloudStore</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/InMemoryStore.html">InMemoryStore</a>
</li>
@@ -252,9 +246,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums.html#/s:9CoreStore8LogLevelO">LogLevel</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationResult.html">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationType.html">MigrationType</a>
</li>
@@ -273,9 +264,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SelectTerm.html">SelectTerm</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SetupResult.html">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/TransformableContainer.html">TransformableContainer</a>
</li>
@@ -338,12 +326,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/KeyPathString.html">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSAttributeType.html">NSAttributeType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSData.html">NSData</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDate.html">NSDate</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDeleteRule.html">NSDeleteRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSManagedObject.html">NSManagedObject</a>
</li>
@@ -374,6 +368,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/RawRepresentable.html">RawRepresentable</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Result.html">Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Selector.html">Selector</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Sequence.html">Sequence</a>
</li>
@@ -391,6 +391,15 @@
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">!=(_:_:)</a>
</li>
@@ -421,6 +430,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;(_:_:)</a>
</li>
@@ -433,6 +448,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;=(_:_:)</a>
</li>
@@ -445,6 +466,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">==(_:_:)</a>
</li>
@@ -475,6 +505,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;(_:_:)</a>
</li>
@@ -487,6 +523,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;=(_:_:)</a>
</li>
@@ -499,6 +541,54 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboeijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzARRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzASRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtAA0aB6ObjectCRbz0kH0Qy1_RszARRb_ASQy2_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_AA0mabkijG0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAQRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_AA0lm4CKeyhO0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAORb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAPRb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAMRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzANRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GGtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_7ElementQy0_Rs_STR0_r1_lF">~=(_:_:)</a>
</li>
@@ -526,11 +616,32 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxq_SgGtSo15NSManagedObjectCRbzAKRb_STR0_So0gH2IDC7ElementRt0_r1_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_GtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_SgGtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB28ObjectCollectionKeyPathValueP">AllowedCoreStoreObjectCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB18ObjectKeyPathValueP">AllowedCoreStoreObjectKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore39AllowedObjectiveCCollectionKeyPathValueP">AllowedObjectiveCCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore29AllowedObjectiveCKeyPathValueP">AllowedObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore37AllowedOptionalObjectiveCKeyPathValueP">AllowedOptionalObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/AnyWhereClause.html">AnyWhereClause</a>
</li>
@@ -606,9 +717,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/GroupByClause.html">GroupByClause</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ICloudStoreObserver.html">ICloudStoreObserver</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore23ImportableAttributeTypeP">ImportableAttributeType</a>
</li>
@@ -669,6 +777,9 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/WhereClauseType.html">WhereClauseType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore20WhereExpressionTraitP">WhereExpressionTrait</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -725,6 +836,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html">Where</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where/Expression.html"> Expression</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV12SingleTargetO"> SingleTarget</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV16CollectionTargetO"> CollectionTarget</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -739,12 +859,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore13KeyPathStringa">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore15MigrationResulta">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore18ModelConfigurationa">ModelConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore12ModelVersiona">ModelVersion</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore11SetupResulta">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore22XcodeDataModelFileNamea">XcodeDataModelFileName</a>
</li>
@@ -2602,7 +2728,7 @@
</div>
<div>
<h4>Return Value</h4>
<p>a <code>CSSaveResult</code> value indicating success or failure, or <code>nil</code> if the transaction was not comitted synchronously</p>
<p><code>YES</code> if the commit succeeded, <code>NO</code> if the commit failed. If <code>NO</code>, the <code>error</code> argument will hold error information.</p>
</div>
</section>
</div>
@@ -2713,8 +2839,8 @@
</article>
</div>
<section class="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2018-12-19)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
<p>&copy; 2019 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2019-03-31)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.5</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</body>
</div>

View File

@@ -23,7 +23,7 @@
<a class="header-link" href="../index.html">
CoreStore Docs
</a>
(88% documented)
(90% documented)
</p>
<p class="header-col--secondary">
@@ -56,9 +56,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction.html">AsynchronousDataTransaction</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction/Result.html"> Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/BaseDataTransaction.html">BaseDataTransaction</a>
</li>
@@ -182,9 +179,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/Entity.html">Entity</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/ICloudStore.html">ICloudStore</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/InMemoryStore.html">InMemoryStore</a>
</li>
@@ -252,9 +246,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums.html#/s:9CoreStore8LogLevelO">LogLevel</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationResult.html">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationType.html">MigrationType</a>
</li>
@@ -273,9 +264,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SelectTerm.html">SelectTerm</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SetupResult.html">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/TransformableContainer.html">TransformableContainer</a>
</li>
@@ -338,12 +326,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/KeyPathString.html">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSAttributeType.html">NSAttributeType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSData.html">NSData</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDate.html">NSDate</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDeleteRule.html">NSDeleteRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSManagedObject.html">NSManagedObject</a>
</li>
@@ -374,6 +368,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/RawRepresentable.html">RawRepresentable</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Result.html">Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Selector.html">Selector</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Sequence.html">Sequence</a>
</li>
@@ -391,6 +391,15 @@
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">!=(_:_:)</a>
</li>
@@ -421,6 +430,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;(_:_:)</a>
</li>
@@ -433,6 +448,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;=(_:_:)</a>
</li>
@@ -445,6 +466,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">==(_:_:)</a>
</li>
@@ -475,6 +505,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;(_:_:)</a>
</li>
@@ -487,6 +523,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;=(_:_:)</a>
</li>
@@ -499,6 +541,54 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboeijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzARRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzASRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtAA0aB6ObjectCRbz0kH0Qy1_RszARRb_ASQy2_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_AA0mabkijG0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAQRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_AA0lm4CKeyhO0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAORb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAPRb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAMRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzANRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GGtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_7ElementQy0_Rs_STR0_r1_lF">~=(_:_:)</a>
</li>
@@ -526,11 +616,32 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxq_SgGtSo15NSManagedObjectCRbzAKRb_STR0_So0gH2IDC7ElementRt0_r1_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_GtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_SgGtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB28ObjectCollectionKeyPathValueP">AllowedCoreStoreObjectCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB18ObjectKeyPathValueP">AllowedCoreStoreObjectKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore39AllowedObjectiveCCollectionKeyPathValueP">AllowedObjectiveCCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore29AllowedObjectiveCKeyPathValueP">AllowedObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore37AllowedOptionalObjectiveCKeyPathValueP">AllowedOptionalObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/AnyWhereClause.html">AnyWhereClause</a>
</li>
@@ -606,9 +717,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/GroupByClause.html">GroupByClause</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ICloudStoreObserver.html">ICloudStoreObserver</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore23ImportableAttributeTypeP">ImportableAttributeType</a>
</li>
@@ -669,6 +777,9 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/WhereClauseType.html">WhereClauseType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore20WhereExpressionTraitP">WhereExpressionTrait</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -725,6 +836,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html">Where</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where/Expression.html"> Expression</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV12SingleTargetO"> SingleTarget</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV16CollectionTargetO"> CollectionTarget</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -739,12 +859,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore13KeyPathStringa">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore15MigrationResulta">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore18ModelConfigurationa">ModelConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore12ModelVersiona">ModelVersion</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore11SetupResulta">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore22XcodeDataModelFileNamea">XcodeDataModelFileName</a>
</li>
@@ -855,7 +981,7 @@
</td>
<td>
<div>
<p>an optional bundle to load models from. If not specified, the main bundle will be used.</p>
<p>an optional bundle to load .xcdatamodeld models from. If not specified, the main bundle will be used.</p>
</div>
</td>
</tr>
@@ -2839,8 +2965,8 @@
</article>
</div>
<section class="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2018-12-19)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
<p>&copy; 2019 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2019-03-31)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.5</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</body>
</div>

View File

@@ -23,7 +23,7 @@
<a class="header-link" href="../index.html">
CoreStore Docs
</a>
(88% documented)
(90% documented)
</p>
<p class="header-col--secondary">
@@ -56,9 +56,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction.html">AsynchronousDataTransaction</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction/Result.html"> Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/BaseDataTransaction.html">BaseDataTransaction</a>
</li>
@@ -182,9 +179,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/Entity.html">Entity</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/ICloudStore.html">ICloudStore</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/InMemoryStore.html">InMemoryStore</a>
</li>
@@ -252,9 +246,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums.html#/s:9CoreStore8LogLevelO">LogLevel</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationResult.html">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationType.html">MigrationType</a>
</li>
@@ -273,9 +264,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SelectTerm.html">SelectTerm</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SetupResult.html">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/TransformableContainer.html">TransformableContainer</a>
</li>
@@ -338,12 +326,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/KeyPathString.html">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSAttributeType.html">NSAttributeType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSData.html">NSData</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDate.html">NSDate</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDeleteRule.html">NSDeleteRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSManagedObject.html">NSManagedObject</a>
</li>
@@ -374,6 +368,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/RawRepresentable.html">RawRepresentable</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Result.html">Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Selector.html">Selector</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Sequence.html">Sequence</a>
</li>
@@ -391,6 +391,15 @@
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">!=(_:_:)</a>
</li>
@@ -421,6 +430,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;(_:_:)</a>
</li>
@@ -433,6 +448,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;=(_:_:)</a>
</li>
@@ -445,6 +466,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">==(_:_:)</a>
</li>
@@ -475,6 +505,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;(_:_:)</a>
</li>
@@ -487,6 +523,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;=(_:_:)</a>
</li>
@@ -499,6 +541,54 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboeijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzARRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzASRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtAA0aB6ObjectCRbz0kH0Qy1_RszARRb_ASQy2_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_AA0mabkijG0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAQRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_AA0lm4CKeyhO0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAORb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAPRb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAMRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzANRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GGtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_7ElementQy0_Rs_STR0_r1_lF">~=(_:_:)</a>
</li>
@@ -526,11 +616,32 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxq_SgGtSo15NSManagedObjectCRbzAKRb_STR0_So0gH2IDC7ElementRt0_r1_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_GtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_SgGtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB28ObjectCollectionKeyPathValueP">AllowedCoreStoreObjectCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB18ObjectKeyPathValueP">AllowedCoreStoreObjectKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore39AllowedObjectiveCCollectionKeyPathValueP">AllowedObjectiveCCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore29AllowedObjectiveCKeyPathValueP">AllowedObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore37AllowedOptionalObjectiveCKeyPathValueP">AllowedOptionalObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/AnyWhereClause.html">AnyWhereClause</a>
</li>
@@ -606,9 +717,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/GroupByClause.html">GroupByClause</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ICloudStoreObserver.html">ICloudStoreObserver</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore23ImportableAttributeTypeP">ImportableAttributeType</a>
</li>
@@ -669,6 +777,9 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/WhereClauseType.html">WhereClauseType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore20WhereExpressionTraitP">WhereExpressionTrait</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -725,6 +836,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html">Where</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where/Expression.html"> Expression</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV12SingleTargetO"> SingleTarget</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV16CollectionTargetO"> CollectionTarget</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -739,12 +859,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore13KeyPathStringa">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore15MigrationResulta">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore18ModelConfigurationa">ModelConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore12ModelVersiona">ModelVersion</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore11SetupResulta">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore22XcodeDataModelFileNamea">XcodeDataModelFileName</a>
</li>
@@ -883,8 +1009,8 @@
</article>
</div>
<section class="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2018-12-19)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
<p>&copy; 2019 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2019-03-31)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.5</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</body>
</div>

View File

@@ -23,7 +23,7 @@
<a class="header-link" href="../index.html">
CoreStore Docs
</a>
(88% documented)
(90% documented)
</p>
<p class="header-col--secondary">
@@ -56,9 +56,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction.html">AsynchronousDataTransaction</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction/Result.html"> Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/BaseDataTransaction.html">BaseDataTransaction</a>
</li>
@@ -182,9 +179,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/Entity.html">Entity</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/ICloudStore.html">ICloudStore</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/InMemoryStore.html">InMemoryStore</a>
</li>
@@ -252,9 +246,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums.html#/s:9CoreStore8LogLevelO">LogLevel</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationResult.html">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationType.html">MigrationType</a>
</li>
@@ -273,9 +264,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SelectTerm.html">SelectTerm</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SetupResult.html">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/TransformableContainer.html">TransformableContainer</a>
</li>
@@ -338,12 +326,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/KeyPathString.html">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSAttributeType.html">NSAttributeType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSData.html">NSData</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDate.html">NSDate</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDeleteRule.html">NSDeleteRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSManagedObject.html">NSManagedObject</a>
</li>
@@ -374,6 +368,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/RawRepresentable.html">RawRepresentable</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Result.html">Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Selector.html">Selector</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Sequence.html">Sequence</a>
</li>
@@ -391,6 +391,15 @@
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">!=(_:_:)</a>
</li>
@@ -421,6 +430,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;(_:_:)</a>
</li>
@@ -433,6 +448,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;=(_:_:)</a>
</li>
@@ -445,6 +466,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">==(_:_:)</a>
</li>
@@ -475,6 +505,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;(_:_:)</a>
</li>
@@ -487,6 +523,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;=(_:_:)</a>
</li>
@@ -499,6 +541,54 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboeijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzARRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzASRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtAA0aB6ObjectCRbz0kH0Qy1_RszARRb_ASQy2_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_AA0mabkijG0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAQRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_AA0lm4CKeyhO0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAORb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAPRb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAMRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzANRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GGtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_7ElementQy0_Rs_STR0_r1_lF">~=(_:_:)</a>
</li>
@@ -526,11 +616,32 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxq_SgGtSo15NSManagedObjectCRbzAKRb_STR0_So0gH2IDC7ElementRt0_r1_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_GtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_SgGtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB28ObjectCollectionKeyPathValueP">AllowedCoreStoreObjectCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB18ObjectKeyPathValueP">AllowedCoreStoreObjectKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore39AllowedObjectiveCCollectionKeyPathValueP">AllowedObjectiveCCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore29AllowedObjectiveCKeyPathValueP">AllowedObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore37AllowedOptionalObjectiveCKeyPathValueP">AllowedOptionalObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/AnyWhereClause.html">AnyWhereClause</a>
</li>
@@ -606,9 +717,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/GroupByClause.html">GroupByClause</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ICloudStoreObserver.html">ICloudStoreObserver</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore23ImportableAttributeTypeP">ImportableAttributeType</a>
</li>
@@ -669,6 +777,9 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/WhereClauseType.html">WhereClauseType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore20WhereExpressionTraitP">WhereExpressionTrait</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -725,6 +836,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html">Where</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where/Expression.html"> Expression</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV12SingleTargetO"> SingleTarget</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV16CollectionTargetO"> CollectionTarget</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -739,12 +859,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore13KeyPathStringa">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore15MigrationResulta">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore18ModelConfigurationa">ModelConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore12ModelVersiona">ModelVersion</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore11SetupResulta">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore22XcodeDataModelFileNamea">XcodeDataModelFileName</a>
</li>
@@ -1017,8 +1143,8 @@ May contain <code>NSString</code> instances to pertain to named configurations,
</article>
</div>
<section class="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2018-12-19)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
<p>&copy; 2019 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2019-03-31)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.5</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</body>
</div>

View File

@@ -23,7 +23,7 @@
<a class="header-link" href="../index.html">
CoreStore Docs
</a>
(88% documented)
(90% documented)
</p>
<p class="header-col--secondary">
@@ -56,9 +56,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction.html">AsynchronousDataTransaction</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction/Result.html"> Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/BaseDataTransaction.html">BaseDataTransaction</a>
</li>
@@ -182,9 +179,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/Entity.html">Entity</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/ICloudStore.html">ICloudStore</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/InMemoryStore.html">InMemoryStore</a>
</li>
@@ -252,9 +246,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums.html#/s:9CoreStore8LogLevelO">LogLevel</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationResult.html">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationType.html">MigrationType</a>
</li>
@@ -273,9 +264,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SelectTerm.html">SelectTerm</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SetupResult.html">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/TransformableContainer.html">TransformableContainer</a>
</li>
@@ -338,12 +326,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/KeyPathString.html">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSAttributeType.html">NSAttributeType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSData.html">NSData</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDate.html">NSDate</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDeleteRule.html">NSDeleteRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSManagedObject.html">NSManagedObject</a>
</li>
@@ -374,6 +368,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/RawRepresentable.html">RawRepresentable</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Result.html">Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Selector.html">Selector</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Sequence.html">Sequence</a>
</li>
@@ -391,6 +391,15 @@
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">!=(_:_:)</a>
</li>
@@ -421,6 +430,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;(_:_:)</a>
</li>
@@ -433,6 +448,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;=(_:_:)</a>
</li>
@@ -445,6 +466,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">==(_:_:)</a>
</li>
@@ -475,6 +505,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;(_:_:)</a>
</li>
@@ -487,6 +523,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;=(_:_:)</a>
</li>
@@ -499,6 +541,54 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboeijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzARRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzASRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtAA0aB6ObjectCRbz0kH0Qy1_RszARRb_ASQy2_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_AA0mabkijG0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAQRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_AA0lm4CKeyhO0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAORb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAPRb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAMRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzANRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GGtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_7ElementQy0_Rs_STR0_r1_lF">~=(_:_:)</a>
</li>
@@ -526,11 +616,32 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxq_SgGtSo15NSManagedObjectCRbzAKRb_STR0_So0gH2IDC7ElementRt0_r1_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_GtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_SgGtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB28ObjectCollectionKeyPathValueP">AllowedCoreStoreObjectCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB18ObjectKeyPathValueP">AllowedCoreStoreObjectKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore39AllowedObjectiveCCollectionKeyPathValueP">AllowedObjectiveCCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore29AllowedObjectiveCKeyPathValueP">AllowedObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore37AllowedOptionalObjectiveCKeyPathValueP">AllowedOptionalObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/AnyWhereClause.html">AnyWhereClause</a>
</li>
@@ -606,9 +717,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/GroupByClause.html">GroupByClause</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ICloudStoreObserver.html">ICloudStoreObserver</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore23ImportableAttributeTypeP">ImportableAttributeType</a>
</li>
@@ -669,6 +777,9 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/WhereClauseType.html">WhereClauseType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore20WhereExpressionTraitP">WhereExpressionTrait</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -725,6 +836,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html">Where</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where/Expression.html"> Expression</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV12SingleTargetO"> SingleTarget</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV16CollectionTargetO"> CollectionTarget</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -739,12 +859,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore13KeyPathStringa">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore15MigrationResulta">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore18ModelConfigurationa">ModelConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore12ModelVersiona">ModelVersion</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore11SetupResulta">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore22XcodeDataModelFileNamea">XcodeDataModelFileName</a>
</li>
@@ -908,8 +1034,8 @@
</article>
</div>
<section class="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2018-12-19)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
<p>&copy; 2019 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2019-03-31)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.5</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</body>
</div>

View File

@@ -23,7 +23,7 @@
<a class="header-link" href="../index.html">
CoreStore Docs
</a>
(88% documented)
(90% documented)
</p>
<p class="header-col--secondary">
@@ -56,9 +56,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction.html">AsynchronousDataTransaction</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/AsynchronousDataTransaction/Result.html"> Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/BaseDataTransaction.html">BaseDataTransaction</a>
</li>
@@ -182,9 +179,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/Entity.html">Entity</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/ICloudStore.html">ICloudStore</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Classes/InMemoryStore.html">InMemoryStore</a>
</li>
@@ -252,9 +246,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums.html#/s:9CoreStore8LogLevelO">LogLevel</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationResult.html">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/MigrationType.html">MigrationType</a>
</li>
@@ -273,9 +264,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SelectTerm.html">SelectTerm</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/SetupResult.html">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Enums/TransformableContainer.html">TransformableContainer</a>
</li>
@@ -338,12 +326,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/KeyPathString.html">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSAttributeType.html">NSAttributeType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSData.html">NSData</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDate.html">NSDate</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSDeleteRule.html">NSDeleteRule</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/NSManagedObject.html">NSManagedObject</a>
</li>
@@ -374,6 +368,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/RawRepresentable.html">RawRepresentable</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Result.html">Result</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Selector.html">Selector</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Extensions/Sequence.html">Sequence</a>
</li>
@@ -391,6 +391,15 @@
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Functions.html">Functions</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">!=(_:_:)</a>
</li>
@@ -421,6 +430,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2neoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">!=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;(_:_:)</a>
</li>
@@ -433,6 +448,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1loiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&lt;=(_:_:)</a>
</li>
@@ -445,6 +466,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2leoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&lt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_r1_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">==(_:_:)</a>
</li>
@@ -475,6 +505,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2eeoiyAA5WhereVyxGs7KeyPathCyxq_SgG_So17NSManagedObjectIDCtSo0gH0CRbzAMRb_r0_lF">==(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_q0_tAA13DynamicObjectRzAA0cD5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;(_:_:)</a>
</li>
@@ -487,6 +523,12 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1goiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_G_q0_tAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGAD10ExpressionVyx_q_q0_SgG_AHtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_SLR0_r1_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GG_q_SgtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_r0_lF">&gt;=(_:_:)</a>
</li>
@@ -499,6 +541,54 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2geoiyAA5WhereVyxGs7KeyPathCyxq_SgG_AHtSo15NSManagedObjectCRbzAA22QueryableAttributeTypeR_SLR_r0_lF">&gt;=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD12SingleTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA020AllowedObjectiveCKeyH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy0_Gs7KeyPathCyxAA21RelationshipContainerO5ToOneCyx_q_GG_ANyq_q0_GtAA0aB6ObjectCRbzAWRb_0oH0Qy0_Rs_AA07AllowedaboeijG0R0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzARRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzASRb_0kH0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_G9ValueTypeQy2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtAA0aB6ObjectCRbz0kH0Qy1_RszARRb_ASQy2_Rs_AA0cD5TraitR0_AA07AllowedabkeijG0R1_AA0mabkijG0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_G_ALyq_q0_GtSo15NSManagedObjectCRbzAPRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq0_Gs7KeyPathCyxq_SgG_ALyq_q0_GtSo15NSManagedObjectCRbzAQRb_AA027AllowedObjectiveCCollectiongH5ValueR0_r1_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAQRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_AD16CollectionTargetOyx_Gq2_GAFyx_q0_q1_G_s7KeyPathCyq_q2_GtSo15NSManagedObjectCRbzAPRb_AA0cD5TraitR0_AA027AllowedObjectiveCCollectiongH5ValueR1_AA0lm4CKeyhO0R2_r3_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAORb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_9ValueTypeQy1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtAA0aB6ObjectCRbzAPRb_0iF0Qy1_Rs_AA0cD5TraitR0_AA07AllowedabighE0R1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_G_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzAMRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore1toiyAA5WhereV10ExpressionVyx_q0_q1_GAFyx_q0_q_SgG_s7KeyPathCyq_q1_GtSo15NSManagedObjectCRbzANRb_AA0cD5TraitR0_AA020AllowedObjectiveCKeyF5ValueR1_r2_lF">~(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxAA14ValueContainerO8OptionalCyx_q_GGtAA0aB6ObjectCRbzAA23ImportableAttributeTypeR_7ElementQy0_Rs_STR0_r1_lF">~=(_:_:)</a>
</li>
@@ -526,11 +616,32 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq0__s7KeyPathCyxq_SgGtSo15NSManagedObjectCRbzAKRb_STR0_So0gH2IDC7ElementRt0_r1_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_GtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Functions.html#/s:9CoreStore2teoiyAA5WhereVyxGq1__AD10ExpressionVyx_q_q0_SgGtAA13DynamicObjectRzAA0dE5TraitR_AA22QueryableAttributeTypeR0_7ElementQy1_Rs0_STR1_r2_lF">~=(_:_:)</a>
</li>
</ul>
</li>
<li class="nav-group-name">
<a class="nav-group-name-link" href="../Protocols.html">Protocols</a>
<ul class="nav-group-tasks">
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB28ObjectCollectionKeyPathValueP">AllowedCoreStoreObjectCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore07AllowedaB18ObjectKeyPathValueP">AllowedCoreStoreObjectKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore39AllowedObjectiveCCollectionKeyPathValueP">AllowedObjectiveCCollectionKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore29AllowedObjectiveCKeyPathValueP">AllowedObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore37AllowedOptionalObjectiveCKeyPathValueP">AllowedOptionalObjectiveCKeyPathValue</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/AnyWhereClause.html">AnyWhereClause</a>
</li>
@@ -606,9 +717,6 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/GroupByClause.html">GroupByClause</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/ICloudStoreObserver.html">ICloudStoreObserver</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore23ImportableAttributeTypeP">ImportableAttributeType</a>
</li>
@@ -669,6 +777,9 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols/WhereClauseType.html">WhereClauseType</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Protocols.html#/s:9CoreStore20WhereExpressionTraitP">WhereExpressionTrait</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -725,6 +836,15 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html">Where</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where/Expression.html"> Expression</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV12SingleTargetO"> SingleTarget</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Structs/Where.html#/s:9CoreStore5WhereV16CollectionTargetO"> CollectionTarget</a>
</li>
</ul>
</li>
<li class="nav-group-name">
@@ -739,12 +859,18 @@
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore13KeyPathStringa">KeyPathString</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore15MigrationResulta">MigrationResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore18ModelConfigurationa">ModelConfiguration</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore12ModelVersiona">ModelVersion</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore11SetupResulta">SetupResult</a>
</li>
<li class="nav-group-task">
<a class="nav-group-task-link" href="../Typealiases.html#/s:9CoreStore22XcodeDataModelFileNamea">XcodeDataModelFileName</a>
</li>
@@ -1019,8 +1145,8 @@
</article>
</div>
<section class="footer">
<p>&copy; 2018 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2018-12-19)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.4</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
<p>&copy; 2019 <a class="link" href="https://github.com/JohnEstropia" target="_blank" rel="external">John Estropia</a>. All rights reserved. (Last updated: 2019-03-31)</p>
<p>Generated by <a class="link" href="https://github.com/realm/jazzy" target="_blank" rel="external">jazzy ♪♫ v0.9.5</a>, a <a class="link" href="https://realm.io" target="_blank" rel="external">Realm</a> project.</p>
</section>
</body>
</div>

Some files were not shown because too many files have changed in this diff Show More