This commit is contained in:
John Rommel Estropia
2016-03-27 23:12:21 +09:00
parent 1d5cf5a4cc
commit d3e0f576cf
11 changed files with 51 additions and 50 deletions

View File

@@ -61,7 +61,6 @@
82BA18CF1C4BBD7100A0916E /* Functions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E834BA1B7691F3001D3D50 /* Functions.swift */; };
82BA18D01C4BBD7100A0916E /* MigrationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5FAD6AB1B51285300714891 /* MigrationManager.swift */; };
82BA18D11C4BBD7100A0916E /* NotificationObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F2B1AFF849C0064E85B /* NotificationObserver.swift */; };
82BA18D21C4BBD7100A0916E /* NSFileManager+Setup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59D5C211B5BA34B00453479 /* NSFileManager+Setup.swift */; };
82BA18D31C4BBD7100A0916E /* NSManagedObjectContext+CoreStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F2C1AFF849C0064E85B /* NSManagedObjectContext+CoreStore.swift */; };
82BA18D41C4BBD7100A0916E /* NSManagedObjectContext+Querying.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F351AFF85470064E85B /* NSManagedObjectContext+Querying.swift */; };
82BA18D51C4BBD7100A0916E /* NSManagedObjectContext+Setup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F321AFF85470064E85B /* NSManagedObjectContext+Setup.swift */; };
@@ -134,7 +133,6 @@
B52DD1C11BE1F94600949AFE /* Functions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E834BA1B7691F3001D3D50 /* Functions.swift */; };
B52DD1C21BE1F94600949AFE /* MigrationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5FAD6AB1B51285300714891 /* MigrationManager.swift */; };
B52DD1C31BE1F94600949AFE /* NotificationObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F2B1AFF849C0064E85B /* NotificationObserver.swift */; };
B52DD1C41BE1F94600949AFE /* NSFileManager+Setup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59D5C211B5BA34B00453479 /* NSFileManager+Setup.swift */; };
B52DD1C61BE1F94600949AFE /* NSManagedObjectContext+CoreStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F2C1AFF849C0064E85B /* NSManagedObjectContext+CoreStore.swift */; };
B52DD1C71BE1F94600949AFE /* NSManagedObjectContext+Querying.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F351AFF85470064E85B /* NSManagedObjectContext+Querying.swift */; };
B52DD1C81BE1F94600949AFE /* NSManagedObjectContext+Setup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F321AFF85470064E85B /* NSManagedObjectContext+Setup.swift */; };
@@ -234,7 +232,6 @@
B56321AC1BD6521C006C9394 /* Functions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E834BA1B7691F3001D3D50 /* Functions.swift */; };
B56321AD1BD6521C006C9394 /* MigrationManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5FAD6AB1B51285300714891 /* MigrationManager.swift */; };
B56321AE1BD6521C006C9394 /* NotificationObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F2B1AFF849C0064E85B /* NotificationObserver.swift */; };
B56321AF1BD6521C006C9394 /* NSFileManager+Setup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59D5C211B5BA34B00453479 /* NSFileManager+Setup.swift */; };
B56321B11BD6521C006C9394 /* NSManagedObjectContext+CoreStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F2C1AFF849C0064E85B /* NSManagedObjectContext+CoreStore.swift */; };
B56321B21BD6521C006C9394 /* NSManagedObjectContext+Querying.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F351AFF85470064E85B /* NSManagedObjectContext+Querying.swift */; };
B56321B31BD6521C006C9394 /* NSManagedObjectContext+Setup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F321AFF85470064E85B /* NSManagedObjectContext+Setup.swift */; };
@@ -249,7 +246,6 @@
B598514B1C90289F00C99590 /* NSPersistentStoreCoordinator+Setup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59AFF401C6593E400C0ABE2 /* NSPersistentStoreCoordinator+Setup.swift */; };
B59983491CA54BC100E1A417 /* CSBaseDataTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5519A581CA2008C002BEF78 /* CSBaseDataTransaction.swift */; };
B59AFF411C6593E400C0ABE2 /* NSPersistentStoreCoordinator+Setup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59AFF401C6593E400C0ABE2 /* NSPersistentStoreCoordinator+Setup.swift */; };
B59D5C221B5BA34B00453479 /* NSFileManager+Setup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59D5C211B5BA34B00453479 /* NSFileManager+Setup.swift */; };
B5A261211B64BFDB006EB6D3 /* MigrationType.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5A261201B64BFDB006EB6D3 /* MigrationType.swift */; };
B5AEFAB51C9962AE00AD137F /* CoreStoreBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5AEFAB41C9962AE00AD137F /* CoreStoreBridge.swift */; };
B5AEFAB61C9962AE00AD137F /* CoreStoreBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5AEFAB41C9962AE00AD137F /* CoreStoreBridge.swift */; };
@@ -321,7 +317,6 @@
B5D9E3141CA2C317007A9D52 /* BaseDataTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EEB1AFF846E0064E85B /* BaseDataTransaction.swift */; };
B5D9E3151CA2C317007A9D52 /* SaveResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EF21AFF846E0064E85B /* SaveResult.swift */; };
B5D9E3161CA2C317007A9D52 /* From.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F011AFF847B0064E85B /* From.swift */; };
B5D9E3171CA2C317007A9D52 /* NSFileManager+Setup.swift in Sources */ = {isa = PBXBuildFile; fileRef = B59D5C211B5BA34B00453479 /* NSFileManager+Setup.swift */; };
B5D9E3181CA2C317007A9D52 /* NSProgress+Convenience.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5FAD6A81B50A4B300714891 /* NSProgress+Convenience.swift */; };
B5D9E3191CA2C317007A9D52 /* SynchronousDataTransaction.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84EF31AFF846E0064E85B /* SynchronousDataTransaction.swift */; };
B5D9E31A1CA2C317007A9D52 /* NSManagedObject+Convenience.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5E84F271AFF84920064E85B /* NSManagedObject+Convenience.swift */; };
@@ -564,7 +559,6 @@
B56964D31B22FFAD0075EE4A /* DataStack+Migration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "DataStack+Migration.swift"; sourceTree = "<group>"; };
B56965231B356B820075EE4A /* MigrationResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MigrationResult.swift; sourceTree = "<group>"; };
B59AFF401C6593E400C0ABE2 /* NSPersistentStoreCoordinator+Setup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSPersistentStoreCoordinator+Setup.swift"; sourceTree = "<group>"; };
B59D5C211B5BA34B00453479 /* NSFileManager+Setup.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSFileManager+Setup.swift"; sourceTree = "<group>"; };
B5A261201B64BFDB006EB6D3 /* MigrationType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MigrationType.swift; sourceTree = "<group>"; };
B5AD60CD1C90141E00F2B2E8 /* Package.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Package.swift; sourceTree = SOURCE_ROOT; };
B5AEFAB41C9962AE00AD137F /* CoreStoreBridge.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CoreStoreBridge.swift; sourceTree = "<group>"; };
@@ -1055,7 +1049,6 @@
B5E834BA1B7691F3001D3D50 /* Functions.swift */,
B5FAD6AB1B51285300714891 /* MigrationManager.swift */,
B5E84F2B1AFF849C0064E85B /* NotificationObserver.swift */,
B59D5C211B5BA34B00453479 /* NSFileManager+Setup.swift */,
B5E84F2C1AFF849C0064E85B /* NSManagedObjectContext+CoreStore.swift */,
B5E84F351AFF85470064E85B /* NSManagedObjectContext+Querying.swift */,
B5E84F321AFF85470064E85B /* NSManagedObjectContext+Setup.swift */,
@@ -1474,7 +1467,6 @@
B5E84EF51AFF846E0064E85B /* BaseDataTransaction.swift in Sources */,
B5E84EFB1AFF846E0064E85B /* SaveResult.swift in Sources */,
B5E84F0F1AFF847B0064E85B /* From.swift in Sources */,
B59D5C221B5BA34B00453479 /* NSFileManager+Setup.swift in Sources */,
B5FAD6A91B50A4B400714891 /* NSProgress+Convenience.swift in Sources */,
B5E84EFC1AFF846E0064E85B /* SynchronousDataTransaction.swift in Sources */,
B5E222231CA4E12600BA2E95 /* CSSynchronousDataTransaction.swift in Sources */,
@@ -1586,7 +1578,6 @@
B5519A4B1CA1F4FB002BEF78 /* CSError.swift in Sources */,
82BA18D71C4BBD7100A0916E /* NSManagedObjectModel+Setup.swift in Sources */,
82BA18C31C4BBD5300A0916E /* ObjectObserver.swift in Sources */,
82BA18D21C4BBD7100A0916E /* NSFileManager+Setup.swift in Sources */,
82BA18BF1C4BBD5300A0916E /* SectionBy.swift in Sources */,
82BA18AC1C4BBD3100A0916E /* SynchronousDataTransaction.swift in Sources */,
82BA18C71C4BBD5900A0916E /* CoreStore+Migration.swift in Sources */,
@@ -1667,7 +1658,6 @@
B5ECDBFD1CA804FD00C7F112 /* NSManagedObjectContext+ObjectiveC.swift in Sources */,
B52DD1BD1BE1F94300949AFE /* NSManagedObject+Convenience.swift in Sources */,
B52DD1AD1BE1F93900949AFE /* Where.swift in Sources */,
B52DD1C41BE1F94600949AFE /* NSFileManager+Setup.swift in Sources */,
B5ECDBE31CA6BB2B00C7F112 /* CSBaseDataTransaction+Querying.swift in Sources */,
B5ECDC031CA80CBA00C7F112 /* CSWhere.swift in Sources */,
B52DD1AC1BE1F93900949AFE /* Select.swift in Sources */,
@@ -1774,7 +1764,6 @@
B5202CFD1C046E8400DED140 /* NSFetchedResultsController+Convenience.swift in Sources */,
B5FE4DA91C84FB4400FA6A91 /* InMemoryStore.swift in Sources */,
B5DBE2D41C991B3E00B5CEFA /* CSDataStack.swift in Sources */,
B56321AF1BD6521C006C9394 /* NSFileManager+Setup.swift in Sources */,
B50392FA1C47963F009900CA /* NSManagedObject+Transaction.swift in Sources */,
B5519A5B1CA2008C002BEF78 /* CSBaseDataTransaction.swift in Sources */,
B5ECDBE21CA6BB2B00C7F112 /* CSBaseDataTransaction+Querying.swift in Sources */,
@@ -1897,7 +1886,6 @@
B529C2051CA4A2DB007E7EBD /* CSSaveResult.swift in Sources */,
B5D9E3161CA2C317007A9D52 /* From.swift in Sources */,
B5D7A5B71CA3BF8F005C752B /* CSInto.swift in Sources */,
B5D9E3171CA2C317007A9D52 /* NSFileManager+Setup.swift in Sources */,
B5D9E3181CA2C317007A9D52 /* NSProgress+Convenience.swift in Sources */,
B5D9E3191CA2C317007A9D52 /* SynchronousDataTransaction.swift in Sources */,
B5ECDBE61CA6BEA300C7F112 /* CSClauseTypes.swift in Sources */,

View File

@@ -49,6 +49,7 @@ public extension NSFetchedResultsController {
// MARK: Internal
@nonobjc
internal static func createFromContext<T: NSManagedObject>(context: NSManagedObjectContext, fetchRequest: NSFetchRequest, from: From<T>? = nil, sectionBy: SectionBy? = nil, fetchClauses: [FetchClause]) -> NSFetchedResultsController {
return CoreStoreFetchedResultsController<T>(
@@ -64,6 +65,7 @@ public extension NSFetchedResultsController {
// MARK: Deprecated
@available(*, deprecated=1.5.2, message="Use NSFetchedResultsController.createForStack(_:fetchRequest:from:sectionBy:fetchClauses:) to create NSFetchedResultsControllers directly")
@nonobjc
public convenience init<T: NSManagedObject>(dataStack: DataStack, fetchRequest: NSFetchRequest, from: From<T>? = nil, sectionBy: SectionBy? = nil, fetchClauses: [FetchClause]) {
let context = dataStack.mainContext

View File

@@ -51,6 +51,7 @@ public extension NSProgress {
static var progressObserver: Void?
}
@nonobjc
private var progressObserver: ProgressObserver {
get {
@@ -74,7 +75,10 @@ public extension NSProgress {
}
@objc private final class ProgressObserver: NSObject {
// MARK: - ProgressObserver
@objc
private final class ProgressObserver: NSObject {
private unowned let progress: NSProgress
private var progressHandler: ((progress: NSProgress) -> Void)? {

View File

@@ -1,26 +0,0 @@
//
// NSFileManager+Setup.swift
// CoreStore
//
// Created by John Rommel Estropia on 2015/07/19.
// Copyright © 2015 John Rommel Estropia. All rights reserved.
//
import Foundation
// MARK: - NSFileManager
internal extension NSFileManager {
// MARK: Internal
internal func removeSQLiteStoreAtURL(fileURL: NSURL) {
_ = try? self.removeItemAtURL(fileURL)
let filePath = fileURL.path!
_ = try? self.removeItemAtPath(filePath.stringByAppendingString("-shm"))
_ = try? self.removeItemAtPath(filePath.stringByAppendingString("-wal"))
}
}

View File

@@ -36,6 +36,7 @@ internal extension NSManagedObjectContext {
// MARK: Internal
@nonobjc
internal var shouldCascadeSavesToParent: Bool {
get {
@@ -56,11 +57,13 @@ internal extension NSManagedObjectContext {
}
}
@nonobjc
internal func entityDescriptionForEntityType(entity: NSManagedObject.Type) -> NSEntityDescription? {
return self.entityDescriptionForEntityClass(entity)
}
@nonobjc
internal func entityDescriptionForEntityClass(entity: AnyClass) -> NSEntityDescription? {
guard let entityName = self.parentStack?.entityNameForEntityClass(entity) else {
@@ -73,6 +76,7 @@ internal extension NSManagedObjectContext {
)
}
@nonobjc
internal func setupForCoreStoreWithContextName(contextName: String) {
#if USE_FRAMEWORKS
@@ -123,6 +127,7 @@ internal extension NSManagedObjectContext {
static var shouldCascadeSavesToParent: Void?
}
@nonobjc
private var observerForWillSaveNotification: NotificationObserver? {
get {

View File

@@ -33,6 +33,7 @@ internal extension NSManagedObjectContext {
// MARK: Internal
@nonobjc
internal weak var parentStack: DataStack? {
get {
@@ -59,6 +60,7 @@ internal extension NSManagedObjectContext {
}
}
@nonobjc
internal class func rootSavingContextForCoordinator(coordinator: NSPersistentStoreCoordinator) -> NSManagedObjectContext {
let context = NSManagedObjectContext(concurrencyType: .PrivateQueueConcurrencyType)
@@ -70,6 +72,7 @@ internal extension NSManagedObjectContext {
return context
}
@nonobjc
internal class func mainContextForRootContext(rootContext: NSManagedObjectContext) -> NSManagedObjectContext {
let context = NSManagedObjectContext(concurrencyType: .MainQueueConcurrencyType)
@@ -106,6 +109,7 @@ internal extension NSManagedObjectContext {
static var observerForDidSaveNotification: Void?
}
@nonobjc
private var observerForDidSaveNotification: NotificationObserver? {
get {

View File

@@ -36,6 +36,7 @@ internal extension NSManagedObjectContext {
// MARK: Internal
@nonobjc
internal weak var parentTransaction: BaseDataTransaction? {
get {
@@ -55,6 +56,7 @@ internal extension NSManagedObjectContext {
}
}
@nonobjc
internal func isRunningInAllowedQueue() -> Bool {
guard let parentTransaction = self.parentTransaction else {
@@ -64,6 +66,7 @@ internal extension NSManagedObjectContext {
return parentTransaction.isRunningInAllowedQueue()
}
@nonobjc
internal func temporaryContextInTransactionWithConcurrencyType(concurrencyType: NSManagedObjectContextConcurrencyType) -> NSManagedObjectContext {
let context = NSManagedObjectContext(concurrencyType: concurrencyType)
@@ -76,6 +79,7 @@ internal extension NSManagedObjectContext {
return context
}
@nonobjc
internal func saveSynchronously() -> SaveResult {
var result = SaveResult(hasChanges: false)
@@ -122,6 +126,7 @@ internal extension NSManagedObjectContext {
return result
}
@nonobjc
internal func saveAsynchronouslyWithCompletion(completion: ((result: SaveResult) -> Void) = { _ in }) {
self.performBlock { () -> Void in
@@ -167,6 +172,7 @@ internal extension NSManagedObjectContext {
}
}
@nonobjc
internal func refreshAllObjectsAsFaults() {
if #available(iOS 8.3, OSX 10.11, *) {

View File

@@ -33,7 +33,8 @@ internal extension NSManagedObjectModel {
// MARK: Internal
@nonobjc internal class func fromBundle(bundle: NSBundle, modelName: String, modelVersionHints: Set<String> = []) -> NSManagedObjectModel {
@nonobjc
internal class func fromBundle(bundle: NSBundle, modelName: String, modelVersionHints: Set<String> = []) -> NSManagedObjectModel {
guard let modelFilePath = bundle.pathForResource(modelName, ofType: "momd") else {
@@ -108,7 +109,8 @@ internal extension NSManagedObjectModel {
fatalError("Could not create an \(typeName(NSManagedObjectModel)) from the model at URL \"\(modelFileURL)\".")
}
@nonobjc internal private(set) var currentModelVersion: String? {
@nonobjc
internal private(set) var currentModelVersion: String? {
get {
@@ -128,7 +130,8 @@ internal extension NSManagedObjectModel {
}
}
@nonobjc internal private(set) var modelVersions: Set<String>? {
@nonobjc
internal private(set) var modelVersions: Set<String>? {
get {
@@ -148,12 +151,14 @@ internal extension NSManagedObjectModel {
}
}
@nonobjc internal func entityNameForClass(entityClass: AnyClass) -> String {
@nonobjc
internal func entityNameForClass(entityClass: AnyClass) -> String {
return self.entityNameMapping[NSStringFromClass(entityClass)]!
}
@nonobjc internal func entityTypesMapping() -> [String: NSManagedObject.Type] {
@nonobjc
internal func entityTypesMapping() -> [String: NSManagedObject.Type] {
var mapping = [String: NSManagedObject.Type]()
self.entityNameMapping.forEach { (className, entityName) in
@@ -163,12 +168,14 @@ internal extension NSManagedObjectModel {
return mapping
}
@nonobjc internal func mergedModels() -> [NSManagedObjectModel] {
@nonobjc
internal func mergedModels() -> [NSManagedObjectModel] {
return self.modelVersions?.map { self[$0] }.flatMap { $0 == nil ? [] : [$0!] } ?? [self]
}
@nonobjc internal subscript(modelVersion: String) -> NSManagedObjectModel? {
@nonobjc
internal subscript(modelVersion: String) -> NSManagedObjectModel? {
if modelVersion == self.currentModelVersion {
@@ -194,7 +201,8 @@ internal extension NSManagedObjectModel {
return model
}
@nonobjc internal subscript(metadata: [String: AnyObject]) -> NSManagedObjectModel? {
@nonobjc
internal subscript(metadata: [String: AnyObject]) -> NSManagedObjectModel? {
guard let modelHashes = metadata[NSStoreModelVersionHashesKey] as? [String : NSData] else {
@@ -213,6 +221,7 @@ internal extension NSManagedObjectModel {
// MARK: Private
@nonobjc
private var modelFileURL: NSURL? {
get {
@@ -221,6 +230,7 @@ internal extension NSManagedObjectModel {
}
}
@nonobjc
private var modelVersionFileURL: NSURL? {
get {
@@ -241,6 +251,7 @@ internal extension NSManagedObjectModel {
}
}
@nonobjc
private var entityNameMapping: [String: String] {
get {

View File

@@ -33,7 +33,8 @@ internal extension NSPersistentStore {
// MARK: Internal
@nonobjc internal var storageInterface: StorageInterface? {
@nonobjc
internal var storageInterface: StorageInterface? {
get {

View File

@@ -35,6 +35,7 @@ import CoreData
internal extension NSPersistentStoreCoordinator {
@nonobjc
internal func performAsynchronously(closure: () -> Void) {
#if USE_FRAMEWORKS
@@ -58,6 +59,7 @@ internal extension NSPersistentStoreCoordinator {
#endif
}
@nonobjc
internal func performSynchronously(closure: () -> Void) {
#if USE_FRAMEWORKS
@@ -78,6 +80,7 @@ internal extension NSPersistentStoreCoordinator {
#endif
}
@nonobjc
internal func performSynchronously<T>(closure: () throws -> T) throws -> T {
var closureError: ErrorType?
@@ -137,7 +140,8 @@ internal extension NSPersistentStoreCoordinator {
return result!
}
@nonobjc internal func addPersistentStoreSynchronously(storeType: String, configuration: String?, URL storeURL: NSURL?, options: [NSObject : AnyObject]?) throws -> NSPersistentStore {
@nonobjc
internal func addPersistentStoreSynchronously(storeType: String, configuration: String?, URL storeURL: NSURL?, options: [NSObject : AnyObject]?) throws -> NSPersistentStore {
var store: NSPersistentStore?
var storeError: NSError?

View File

@@ -47,7 +47,8 @@ public extension NSManagedObject {
// MARK: Internal
internal dynamic class func createInContext(context: NSManagedObjectContext) -> Self {
@nonobjc
internal class func createInContext(context: NSManagedObjectContext) -> Self {
return self.init(
entity: context.entityDescriptionForEntityType(self)!,
@@ -55,6 +56,7 @@ public extension NSManagedObject {
)
}
@nonobjc
internal func deleteFromContext() {
self.managedObjectContext?.deleteObject(self)