From e2f7d366092ca9151265a89281617fa7bcbb012c Mon Sep 17 00:00:00 2001 From: Peter Livesey Date: Tue, 20 Sep 2016 16:30:33 -0700 Subject: [PATCH] Converting the API to be in the Swift 3 style (#38) --- ConsistencyManager/ConsistencyManager.swift | 34 +- .../DataStructures/BatchListener.swift | 14 +- .../BatchListenerTest.swift | 6 +- .../BatchUpdateTests.swift | 2 +- .../ClearAndCancelTests.swift | 6 +- ConsistencyManagerTests/ContextTests.swift | 2 +- ConsistencyManagerTests/ErrorTests.swift | 2 +- .../ConsistencyManagerTestCase.swift | 20 +- .../ModelUpdatesTests.swift | 18 +- .../PauseListenerTests.swift | 156 +- ConsistencyManagerTests/ProjectionTests.swift | 8 +- .../RaceConditionsTests.swift | 4 +- .../ShortCurcuitTests.swift | 4 +- ConsistencyManagerTests/UpdateFlowTests.swift | 8 +- .../UpdateOrderingTests.swift | 4 +- ConsistencyManagerTests/UpdateTests.swift | 12 +- README.md | 14 + .../project.pbxproj | 19 +- .../Network/UpdateHelpers.swift | 2 +- .../DetailViewController.swift | 2 +- .../ViewControllers/MainViewController.swift | 4 +- .../PerformanceTests.swift | 14 +- SampleApp/Podfile.lock | 8 +- .../ConsistencyManager.podspec.json | 4 +- SampleApp/Pods/Manifest.lock | 8 +- SampleApp/Pods/Pods.xcodeproj/project.pbxproj | 2683 +++++------------ .../ConsistencyManager/Info.plist | 2 +- ...sistencyManagerDemo-acknowledgements.plist | 2 + ...Pods-ConsistencyManagerDemo.debug.xcconfig | 1 + ...ds-ConsistencyManagerDemo.release.xcconfig | 1 + ...ncyManagerDemoTests-acknowledgements.plist | 2 + ...ConsistencyManagerDemoTests.debug.xcconfig | 1 + ...nsistencyManagerDemoTests.release.xcconfig | 1 + 33 files changed, 994 insertions(+), 2074 deletions(-) diff --git a/ConsistencyManager/ConsistencyManager.swift b/ConsistencyManager/ConsistencyManager.swift index 6252297..0991ae7 100644 --- a/ConsistencyManager/ConsistencyManager.swift +++ b/ConsistencyManager/ConsistencyManager.swift @@ -30,17 +30,17 @@ import Foundation The two important APIs that you will mainly use in this class are: - `listenForUpdates(listener: ConsistencyManagerListener)` - `updateWithNewModel(model: ConsistencyManagerModel, context: Any? = nil)` + `addListener(listener: ConsistencyManagerListener)` + `updateModel(model: ConsistencyManagerModel, context: Any? = nil)` These APIs allow you to start listening for updates on a model and register new updates. - Anytime you change a model locally, you should call updateWithNewModel to propegate these changes. + Anytime you change a model locally, you should call updateModel to propegate these changes. Additionally you have the following APIs to use if you choose to have your listener temporarily pause (and later resume) listening to updates: - `pauseListeningForUpdates(listener: ConsistencyManagerListener)` - `resumeListeningForUpdates(listener: ConsistencyManagerListener)` + `pauseListener(listener: ConsistencyManagerListener)` + `resumeListener(listener: ConsistencyManagerListener)` #### Removing Listeners @@ -140,23 +140,23 @@ open class ConsistencyManager { Note that calling this method on a paused listener will not unpause it. - parameter listener: The consistency manager listener that is listening to a model */ - open func listenForUpdates(_ listener: ConsistencyManagerListener) { + open func addListener(_ listener: ConsistencyManagerListener) { let model = listener.currentModel() if let model = model { - listenForUpdates(listener, onModel: model) + addListener(listener, to: model) } // Else they are listening to nothing. Let's not remove them though, since we are on a different thread, so timing issues could cause bugs. } /** - Call this method if you want to listen to a specific model. Usually, this is unnecssary and you should just use listenForUpdates(listener). + Call this method if you want to listen to a specific model. Usually, this is unnecssary and you should just use `addListener(listener)`. This is necessary if you manually update a model and change only part of it. Note that calling this method on a paused listener will not unpause it. For a performance optimization, you may only want to add yourself as a listener for this new change (and not the whole model again). - parameter listener: the consistency manager - - parameter onModel: the model you want to listen to with this listener + - parameter model: the model you want to listen to with this listener */ - open func listenForUpdates(_ listener: ConsistencyManagerListener, onModel model: ConsistencyManagerModel) { + open func addListener(_ listener: ConsistencyManagerListener, to model: ConsistencyManagerModel) { dispatchTask { _ in self.addListener(listener, recursivelyToChildModels: model) } @@ -198,7 +198,7 @@ open class ConsistencyManager { // MARK: Pausing and Resuming Listening to Updates /** - Temporarily ignore any updates on the current model. Use removeListener(listener: ConsistencyManagerListener) instead if you + Temporarily ignore any updates on the current model. Use `removeListener(listener: ConsistencyManagerListener)` instead if you know that you will not ever need to resume listening to updates. Once you start listening again, you will get all the changes that you missed via the modelUpdated delegate method with the most updated model at that point, and you will get the most recent context (only) as well. @@ -211,8 +211,8 @@ open class ConsistencyManager { This should only be called on the main thread. - parameter listener: The consistency manager listener that is currently listening to a model */ - open func pauseListeningForUpdates(_ listener: ConsistencyManagerListener) { - if !isPaused(listener) { + open func pauseListener(_ listener: ConsistencyManagerListener) { + if !isListenerPaused(listener) { let pausedListener = PausedListener(listener: listener, updatedModel: listener.currentModel(), mostRecentContext: nil, modelUpdates: ModelUpdates(changedModelIds: [], deletedModelIds: [])) pausedListeners.append(pausedListener) } @@ -226,9 +226,9 @@ open class ConsistencyManager { This should only be called on the main thread. - parameter listener: The consistency manager listener that is currently not listening - (i.e. has most recently called the pauseListeningForUpdates method) to a model + (i.e. has most recently called the pauseListener method) to a model */ - open func resumeListeningForUpdates(_ listener: ConsistencyManagerListener) { + open func resumeListener(_ listener: ConsistencyManagerListener) { guard let index = pausedListeners.index(where: { listener === $0.listener }) else { return } @@ -295,7 +295,7 @@ open class ConsistencyManager { - parameter listener: The listener to query the paused state of. */ - open func isPaused(_ listener: ConsistencyManagerListener) -> Bool { + open func isListenerPaused(_ listener: ConsistencyManagerListener) -> Bool { return pausedListeners.contains { listener === $0.listener } } @@ -308,7 +308,7 @@ open class ConsistencyManager { - parameter model: the model with which you want to update the consistency manager - parameter context: any context parameter, to be passed on to each listener in the delegate method */ - open func updateWithNewModel(_ model: ConsistencyManagerModel, context: Any? = nil) { + open func updateModel(_ model: ConsistencyManagerModel, context: Any? = nil) { dispatchTask { cancelled in let tuple = self.childrenAndListenersForModel(model) let optionalModelUpdates = CollectionHelpers.optionalValueDictionaryFromDictionary(tuple.modelUpdates) diff --git a/ConsistencyManager/DataStructures/BatchListener.swift b/ConsistencyManager/DataStructures/BatchListener.swift index c042848..2bacf3a 100644 --- a/ConsistencyManager/DataStructures/BatchListener.swift +++ b/ConsistencyManager/DataStructures/BatchListener.swift @@ -21,7 +21,7 @@ import Foundation ### SETUP - You should NOT call listenForUpdates on any of the listeners that you pass into this class. Instead, you should call it directly on the instance of this class. + You should NOT call addListener on any of the listeners that you pass into this class. Instead, you should call it directly on the instance of this class. This causes the instance of this class to listen to each of the models of the listeners. Any time you manually change a model on one of the listeners, you need to call listenerHasUpdatedModel. */ @@ -35,15 +35,15 @@ open class BatchListener: ConsistencyManagerListener { /// Listening to all models occurs immediately upon initialization of the BatchListener object public init(listeners: [ConsistencyManagerListener], consistencyManager: ConsistencyManager) { self.listeners = listeners - listenForUpdates(consistencyManager) + addListener(consistencyManager) } /** - Instead of calling listenForUpdates on each of the child listeners, you should call this method. + Instead of calling addListener on each of the child listeners, you should call this method. You should also call it whenever you manually change any of the sublisteners. */ - open func listenForUpdates(_ consistencyManager: ConsistencyManager) { - consistencyManager.listenForUpdates(self) + open func addListener(_ consistencyManager: ConsistencyManager) { + consistencyManager.addListener(self) } /** @@ -51,7 +51,7 @@ open class BatchListener: ConsistencyManagerListener { */ open func listenerHasUpdatedModel(_ listener: ConsistencyManagerListener, consistencyManager: ConsistencyManager) { if let model = listener.currentModel() { - consistencyManager.listenForUpdates(self, onModel: model) + consistencyManager.addListener(self, to: model) } // else the model nil, so we don't have to listen to anything new. } @@ -63,7 +63,7 @@ open class BatchListener: ConsistencyManagerListener { - parameter consistencyManager: The consistency manager you are using to listen to these changes. */ open func listenerHasUpdatedModel(_ model: ConsistencyManagerModel, consistencyManager: ConsistencyManager) { - consistencyManager.listenForUpdates(self, onModel: model) + consistencyManager.addListener(self, to: model) } // MARK: Consistency Manager Implementation diff --git a/ConsistencyManagerTests/BatchListenerTest.swift b/ConsistencyManagerTests/BatchListenerTest.swift index 1d86a93..8e8c28e 100644 --- a/ConsistencyManagerTests/BatchListenerTest.swift +++ b/ConsistencyManagerTests/BatchListenerTest.swift @@ -49,7 +49,7 @@ class BatchListenerTest: ConsistencyManagerTestCase { XCTAssertEqual(context as? String, "context") } - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: "context") + updateNewModel(updateModel, consistencyManager: consistencyManager, context: "context") XCTAssertEqual(calledUpdateClosure, 1) XCTAssertEqual(calledListenerUpdateClosure, 1) @@ -97,7 +97,7 @@ class BatchListenerTest: ConsistencyManagerTestCase { XCTFail() } - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: "context") + updateNewModel(updateModel, consistencyManager: consistencyManager, context: "context") XCTAssertEqual(calledUpdateClosure, 1) XCTAssertEqual(calledListenerUpdateClosure, 1) @@ -155,7 +155,7 @@ class BatchListenerTest: ConsistencyManagerTestCase { XCTAssertTrue(updates.changedModelIds.contains("1")) } - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: "context") + updateNewModel(updateModel, consistencyManager: consistencyManager, context: "context") XCTAssertEqual(calledUpdateClosure, 1) XCTAssertEqual(calledListenerUpdateClosure, 1) diff --git a/ConsistencyManagerTests/BatchUpdateTests.swift b/ConsistencyManagerTests/BatchUpdateTests.swift index 7b41d8a..a22df88 100644 --- a/ConsistencyManagerTests/BatchUpdateTests.swift +++ b/ConsistencyManagerTests/BatchUpdateTests.swift @@ -31,7 +31,7 @@ class BatchUpdateTests: ConsistencyManagerTestCase { let updateModel1 = TestModel(id: "2", data: -2, children: [], requiredModel: TestRequiredModel(id: "21", data: -1)) let updateModel2 = TestModel(id: "4", data: -4, children: [], requiredModel: TestRequiredModel(id: "21", data: -1)) let batchModel = BatchUpdateModel(models: [updateModel1, updateModel2]) - updateWithNewModel(batchModel, consistencyManager: consistencyManager) + updateNewModel(batchModel, consistencyManager: consistencyManager) // Both models should have been updated, but we should only have gotten one update if let testModel = listener.model as? TestModel { diff --git a/ConsistencyManagerTests/ClearAndCancelTests.swift b/ConsistencyManagerTests/ClearAndCancelTests.swift index 6b3a59e..1d11ce9 100644 --- a/ConsistencyManagerTests/ClearAndCancelTests.swift +++ b/ConsistencyManagerTests/ClearAndCancelTests.swift @@ -21,7 +21,7 @@ class ClearAndCancelTests: ConsistencyManagerTestCase { addListener(listener, toConsistencyManager: consistencyManager) addListener(pausedListener, toConsistencyManager: consistencyManager) - consistencyManager.pauseListeningForUpdates(pausedListener) + consistencyManager.pauseListener(pausedListener) let expectation = self.expectation(description: "Wait for clear to complete") consistencyManager.clearListenersAndCancelAllTasks { @@ -47,7 +47,7 @@ class ClearAndCancelTests: ConsistencyManagerTestCase { } let updateModel = TestRequiredModel(id: "0", data: 1) - consistencyManager.updateWithNewModel(updateModel) + consistencyManager.updateModel(updateModel) let expectation = self.expectation(description: "Wait for clear to complete") consistencyManager.clearListenersAndCancelAllTasks { @@ -87,7 +87,7 @@ class ClearAndCancelTests: ConsistencyManagerTestCase { } let updateModel = TestRequiredModel(id: "0", data: 1) - consistencyManager.updateWithNewModel(updateModel) + consistencyManager.updateModel(updateModel) waitForExpectations(timeout: 10, handler: nil) diff --git a/ConsistencyManagerTests/ContextTests.swift b/ConsistencyManagerTests/ContextTests.swift index 51074ab..1d201ad 100644 --- a/ConsistencyManagerTests/ContextTests.swift +++ b/ConsistencyManagerTests/ContextTests.swift @@ -32,7 +32,7 @@ class ContextTests: ConsistencyManagerTestCase { XCTAssertEqual(context as? Int, 4) } - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: 4) + updateNewModel(updateModel, consistencyManager: consistencyManager, context: 4) XCTAssertTrue(contextClosureCalled) } diff --git a/ConsistencyManagerTests/ErrorTests.swift b/ConsistencyManagerTests/ErrorTests.swift index e8b8610..5f260c1 100644 --- a/ConsistencyManagerTests/ErrorTests.swift +++ b/ConsistencyManagerTests/ErrorTests.swift @@ -41,7 +41,7 @@ class ErrorTests: ConsistencyManagerTestCase, ConsistencyManagerDelegate { let listener = TestListener(model: model) addListener(listener, toConsistencyManager: consistencyManager) - updateWithNewModel(TestRequiredModel(id: "1", data: 1), consistencyManager: consistencyManager) + updateNewModel(TestRequiredModel(id: "1", data: 1), consistencyManager: consistencyManager) // Make sure the error got called if let error = error { diff --git a/ConsistencyManagerTests/HelperClasses/ConsistencyManagerTestCase.swift b/ConsistencyManagerTests/HelperClasses/ConsistencyManagerTestCase.swift index 96cfc55..0c89dd7 100644 --- a/ConsistencyManagerTests/HelperClasses/ConsistencyManagerTestCase.swift +++ b/ConsistencyManagerTests/HelperClasses/ConsistencyManagerTestCase.swift @@ -42,7 +42,7 @@ class ConsistencyManagerTestCase: XCTestCase { } func addListener(_ listener: ConsistencyManagerListener, toConsistencyManager consistencyManager: ConsistencyManager) { - consistencyManager.listenForUpdates(listener) + consistencyManager.addListener(listener) waitOnDispatchQueue(consistencyManager) } @@ -53,11 +53,11 @@ class ConsistencyManagerTestCase: XCTestCase { waitOnDispatchQueue(consistencyManager) } - func updateWithNewModel(_ model: ConsistencyManagerModel, consistencyManager: ConsistencyManager, context: Any? = nil) { - consistencyManager.updateWithNewModel(model, context: context) + func updateNewModel(_ model: ConsistencyManagerModel, consistencyManager: ConsistencyManager, context: Any? = nil, timeout: TimeInterval = 10) { + consistencyManager.updateModel(model, context: context) // First we need to wait for the consistency manager to finish on its queue - waitOnDispatchQueue(consistencyManager) + waitOnDispatchQueue(consistencyManager, timeout: timeout) // Now, we need to wait for the main queue to do the actual updates flushMainQueueOperations() @@ -89,13 +89,13 @@ class ConsistencyManagerTestCase: XCTestCase { flushMainQueueOperations() } - func pauseListeningForUpdates(_ listener: ConsistencyManagerListener, consistencyManager: ConsistencyManager) { + func pauseListener(_ listener: ConsistencyManagerListener, consistencyManager: ConsistencyManager) { // This is synchronous so no wait is necessary here. This is just for readability and consistency with resume. - consistencyManager.pauseListeningForUpdates(listener) + consistencyManager.pauseListener(listener) } - func resumeListeningForUpdates(_ listener: ConsistencyManagerListener, consistencyManager: ConsistencyManager) { - consistencyManager.resumeListeningForUpdates(listener) + func resumeListener(_ listener: ConsistencyManagerListener, consistencyManager: ConsistencyManager) { + consistencyManager.resumeListener(listener) // First we need to wait for the consistency manager to finish on its queue waitOnDispatchQueue(consistencyManager) @@ -104,7 +104,7 @@ class ConsistencyManagerTestCase: XCTestCase { flushMainQueueOperations() } - func waitOnDispatchQueue(_ consistencyManager: ConsistencyManager) { + func waitOnDispatchQueue(_ consistencyManager: ConsistencyManager, timeout: TimeInterval = 10) { let expectation = self.expectation(description: "Wait for consistency manager to update internal state") let operation = BlockOperation() { @@ -112,7 +112,7 @@ class ConsistencyManagerTestCase: XCTestCase { } consistencyManager.queue.addOperation(operation) - waitForExpectations(timeout: 10) { error in + waitForExpectations(timeout: timeout) { error in XCTAssertNil(error) } } diff --git a/ConsistencyManagerTests/ModelUpdatesTests.swift b/ConsistencyManagerTests/ModelUpdatesTests.swift index d43e6fc..5c5a776 100644 --- a/ConsistencyManagerTests/ModelUpdatesTests.swift +++ b/ConsistencyManagerTests/ModelUpdatesTests.swift @@ -37,7 +37,7 @@ class ModelUpdatesTests: ConsistencyManagerTestCase { } } - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) XCTAssertTrue(calledUpdateClosure) } @@ -63,7 +63,7 @@ class ModelUpdatesTests: ConsistencyManagerTestCase { XCTAssertEqual(updates.deletedModelIds.count, 0) } - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) XCTAssertTrue(calledUpdateClosure) } @@ -89,7 +89,7 @@ class ModelUpdatesTests: ConsistencyManagerTestCase { XCTAssertEqual(updates.deletedModelIds.count, 0) } - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) XCTAssertTrue(calledUpdateClosure) } @@ -117,7 +117,7 @@ class ModelUpdatesTests: ConsistencyManagerTestCase { XCTAssertEqual(updates.deletedModelIds.count, 0) } - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) XCTAssertTrue(calledUpdateClosure) } @@ -148,7 +148,7 @@ class ModelUpdatesTests: ConsistencyManagerTestCase { XCTAssertEqual(updates.deletedModelIds.count, 0) } - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) XCTAssertTrue(calledUpdateClosure) } @@ -179,7 +179,7 @@ class ModelUpdatesTests: ConsistencyManagerTestCase { XCTAssertEqual(updates.deletedModelIds.count, 0) } - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) XCTAssertTrue(calledUpdateClosure) } @@ -213,7 +213,7 @@ class ModelUpdatesTests: ConsistencyManagerTestCase { XCTAssertEqual(updates.deletedModelIds.count, 0) } - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) XCTAssertTrue(calledUpdateClosure) } @@ -232,7 +232,7 @@ class ModelUpdatesTests: ConsistencyManagerTestCase { let initialSubchildUpdate = TestModel(id: "7", data: 0, children: [], requiredModel: TestRequiredModel(id: "8", data: 0)) let initialUpdateModel = TestModel(id: "2", data: 0, children: [initialSubchildUpdate], requiredModel: TestRequiredModel(id: "3", data: 0)) // Now, let's do an update so it changes - updateWithNewModel(initialUpdateModel, consistencyManager: consistencyManager) + updateNewModel(initialUpdateModel, consistencyManager: consistencyManager) // Now, let's change the new model, but with it contained in a subtree // Here were updating both 2 and 7. We expect both of these to register as updates @@ -252,7 +252,7 @@ class ModelUpdatesTests: ConsistencyManagerTestCase { XCTAssertEqual(updates.deletedModelIds.count, 0) } - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) XCTAssertTrue(calledUpdateClosure) } diff --git a/ConsistencyManagerTests/PauseListenerTests.swift b/ConsistencyManagerTests/PauseListenerTests.swift index 11364b4..885dc01 100644 --- a/ConsistencyManagerTests/PauseListenerTests.swift +++ b/ConsistencyManagerTests/PauseListenerTests.swift @@ -11,7 +11,7 @@ import XCTest @testable import ConsistencyManager /** - This test suite focuses on the pauseListeningForUpdates and resumeListeningForUpdates methods in ConsistencyManager.swift. + This test suite focuses on the `pauseListener` and `resumeListener` methods in ConsistencyManager.swift. This tests behavior with updates, deletes, multiple listeners, batch updates, etc. */ class PauseListenerTests: ConsistencyManagerTestCase { @@ -67,12 +67,12 @@ class PauseListenerTests: ConsistencyManagerTestCase { XCTAssertEqual(modelUpdates.deletedModelIds, []) XCTAssertEqual(numberOfUpdates, 0) - XCTAssertFalse(consistencyManager.isPaused(listener)) - pauseListeningForUpdates(listener, consistencyManager: consistencyManager) - XCTAssertTrue(consistencyManager.isPaused(listener)) + XCTAssertFalse(consistencyManager.isListenerPaused(listener)) + pauseListener(listener, consistencyManager: consistencyManager) + XCTAssertTrue(consistencyManager.isListenerPaused(listener)) // Pausing again shouldn't affect anything. We should still only get one callback. - pauseListeningForUpdates(listener, consistencyManager: consistencyManager) - XCTAssertTrue(consistencyManager.isPaused(listener)) + pauseListener(listener, consistencyManager: consistencyManager) + XCTAssertTrue(consistencyManager.isListenerPaused(listener)) // Similarly, adding the listener again shouldn't affect anything, as this does not resume the listening of the listener. addListener(listener, toConsistencyManager: consistencyManager) @@ -80,7 +80,7 @@ class PauseListenerTests: ConsistencyManagerTestCase { let updateModel1 = TestModel(id: "2", data: -2, children: [], requiredModel: TestRequiredModel(id: "21", data: -1)) let updateModel2 = TestModel(id: "4", data: -4, children: [], requiredModel: TestRequiredModel(id: "21", data: -1)) let batchModel = BatchUpdateModel(models: [updateModel1, updateModel2]) - updateWithNewModel(batchModel, consistencyManager: consistencyManager, context: "change") + updateNewModel(batchModel, consistencyManager: consistencyManager, context: "change") testModel = testModelFromListenerModel(listener.model)! // Updates have happened, but we didn't listen for them. @@ -93,7 +93,7 @@ class PauseListenerTests: ConsistencyManagerTestCase { let updateModel3 = TestModel(id: "2", data: -5, children: [], requiredModel: TestRequiredModel(id: "21", data: -1)) let updateModel4 = TestModel(id: "4", data: -6, children: [], requiredModel: TestRequiredModel(id: "21", data: -1)) let batchModel2 = BatchUpdateModel(models: [updateModel3, updateModel4]) - updateWithNewModel(batchModel2, consistencyManager: consistencyManager, context: "change2") + updateNewModel(batchModel2, consistencyManager: consistencyManager, context: "change2") testModel = testModelFromListenerModel(listener.model)! // Updates have happened, but we didn't listen for them. @@ -105,7 +105,7 @@ class PauseListenerTests: ConsistencyManagerTestCase { XCTAssertEqual(numberOfUpdates, 0) // Resume listening for changes, and get all previous changes. - resumeListeningForUpdates(listener, consistencyManager: consistencyManager) + resumeListener(listener, consistencyManager: consistencyManager) // Both models were updated, and now we have listened to those updates. testModel = testModelFromListenerModel(listener.model)! @@ -151,21 +151,21 @@ class PauseListenerTests: ConsistencyManagerTestCase { XCTAssertEqual(numberOfUpdates1, 0) } - XCTAssertFalse(consistencyManager.isPaused(pausedListener)) - pauseListeningForUpdates(pausedListener, consistencyManager: consistencyManager) - XCTAssertTrue(consistencyManager.isPaused(pausedListener)) + XCTAssertFalse(consistencyManager.isListenerPaused(pausedListener)) + pauseListener(pausedListener, consistencyManager: consistencyManager) + XCTAssertTrue(consistencyManager.isListenerPaused(pausedListener)) let updateModel1a = TestModel(id: "2", data: -22, children: [], requiredModel: TestRequiredModel(id: "21", data: -1)) let updateModel2a = TestModel(id: "4", data: -44, children: [], requiredModel: TestRequiredModel(id: "21", data: -1)) let batchModel1 = BatchUpdateModel(models: [updateModel1a, updateModel2a]) - updateWithNewModel(batchModel1, consistencyManager: consistencyManager) + updateNewModel(batchModel1, consistencyManager: consistencyManager) let updateModel1b = TestModel(id: "2", data: -2, children: [], requiredModel: TestRequiredModel(id: "21", data: -1)) let updateModel2b = TestModel(id: "4", data: -4, children: [], requiredModel: TestRequiredModel(id: "21", data: -1)) let batchModel2 = BatchUpdateModel(models: [updateModel1b, updateModel2b]) // Updating the models - updateWithNewModel(batchModel2, consistencyManager: consistencyManager) + updateNewModel(batchModel2, consistencyManager: consistencyManager) // After the first two updates var testModel1 = testModelFromListenerModel(activeListener.model)! @@ -181,8 +181,8 @@ class PauseListenerTests: ConsistencyManagerTestCase { XCTAssertEqual(numberOfUpdates2, 0) // Resume listening for changes, and get all previous changes in a batch update - resumeListeningForUpdates(pausedListener, consistencyManager: consistencyManager) - XCTAssertFalse(consistencyManager.isPaused(pausedListener)) + resumeListener(pausedListener, consistencyManager: consistencyManager) + XCTAssertFalse(consistencyManager.isListenerPaused(pausedListener)) testModel2 = testModelFromListenerModel(pausedListener.model)! XCTAssertEqual(testModel2.children[0].data, -2) @@ -194,7 +194,7 @@ class PauseListenerTests: ConsistencyManagerTestCase { let updateModel3 = TestModel(id: "2", data: -5, children: [], requiredModel: TestRequiredModel(id: "21", data: -1)) let updateModel4 = TestModel(id: "4", data: -6, children: [], requiredModel: TestRequiredModel(id: "21", data: -1)) let batchModel3 = BatchUpdateModel(models: [updateModel3, updateModel4]) - updateWithNewModel(batchModel3, consistencyManager: consistencyManager) + updateNewModel(batchModel3, consistencyManager: consistencyManager) testModel1 = testModelFromListenerModel(activeListener.model)! testModel2 = testModelFromListenerModel(pausedListener.model)! @@ -233,11 +233,11 @@ class PauseListenerTests: ConsistencyManagerTestCase { XCTAssertEqual(testModel.children[0].data, 2) XCTAssertEqual(numberOfUpdates, 0) - XCTAssertFalse(consistencyManager.isPaused(listener)) - pauseListeningForUpdates(listener, consistencyManager: consistencyManager) - XCTAssertTrue(consistencyManager.isPaused(listener)) - resumeListeningForUpdates(listener, consistencyManager: consistencyManager) - XCTAssertFalse(consistencyManager.isPaused(listener)) + XCTAssertFalse(consistencyManager.isListenerPaused(listener)) + pauseListener(listener, consistencyManager: consistencyManager) + XCTAssertTrue(consistencyManager.isListenerPaused(listener)) + resumeListener(listener, consistencyManager: consistencyManager) + XCTAssertFalse(consistencyManager.isListenerPaused(listener)) // Current models before the update testModel = testModelFromListenerModel(listener.model)! @@ -271,12 +271,12 @@ class PauseListenerTests: ConsistencyManagerTestCase { XCTAssertEqual(testModel.requiredModel.data, 0) XCTAssertEqual(numberOfUpdates, 0) - XCTAssertFalse(consistencyManager.isPaused(listener)) - pauseListeningForUpdates(listener, consistencyManager: consistencyManager) - XCTAssertTrue(consistencyManager.isPaused(listener)) + XCTAssertFalse(consistencyManager.isListenerPaused(listener)) + pauseListener(listener, consistencyManager: consistencyManager) + XCTAssertTrue(consistencyManager.isListenerPaused(listener)) let updateModel = testModel - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: nil) + updateNewModel(updateModel, consistencyManager: consistencyManager, context: nil) testModel = listener.model as! TestModel XCTAssertEqual(testModel.requiredModel.data, 0) @@ -284,8 +284,8 @@ class PauseListenerTests: ConsistencyManagerTestCase { XCTAssertEqual(modelUpdates.deletedModelIds, []) XCTAssertEqual(numberOfUpdates, 0) - resumeListeningForUpdates(listener, consistencyManager: consistencyManager) - XCTAssertFalse(consistencyManager.isPaused(listener)) + resumeListener(listener, consistencyManager: consistencyManager) + XCTAssertFalse(consistencyManager.isListenerPaused(listener)) testModel = listener.model as! TestModel XCTAssertEqual(testModel.requiredModel.data, 0) XCTAssertEqual(modelUpdates.changedModelIds, []) @@ -347,12 +347,12 @@ class PauseListenerTests: ConsistencyManagerTestCase { XCTAssertEqual(testModel.requiredModel.data, 0) XCTAssertEqual(numberOfUpdatesToActiveListener, 0) - XCTAssertFalse(consistencyManager.isPaused(pausedListener)) - pauseListeningForUpdates(pausedListener, consistencyManager: consistencyManager) - XCTAssertTrue(consistencyManager.isPaused(pausedListener)) + XCTAssertFalse(consistencyManager.isListenerPaused(pausedListener)) + pauseListener(pausedListener, consistencyManager: consistencyManager) + XCTAssertTrue(consistencyManager.isListenerPaused(pausedListener)) let updateModel = TestModel(id: "0", data: 0, children: [], requiredModel: TestRequiredModel(id: "1", data: -5)) - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: "firstChange") + updateNewModel(updateModel, consistencyManager: consistencyManager, context: "firstChange") // Update has happened, but we didn't listen for it on the first listener. testModel = testModelFromListenerModel(pausedListener.model)! @@ -370,7 +370,7 @@ class PauseListenerTests: ConsistencyManagerTestCase { XCTAssertEqual(contextStringSavedToActiveListener!, "firstChange") let undoUpdateModel = TestModel(id: "0", data: 0, children: [], requiredModel: TestRequiredModel(id: "1", data: 0)) - updateWithNewModel(undoUpdateModel, consistencyManager: consistencyManager, context: "undoingChange") + updateNewModel(undoUpdateModel, consistencyManager: consistencyManager, context: "undoingChange") // Update has happened, but we didn't listen for it on the first listener. testModel = testModelFromListenerModel(pausedListener.model)! @@ -388,8 +388,8 @@ class PauseListenerTests: ConsistencyManagerTestCase { XCTAssertEqual(contextStringSavedToActiveListener!, "undoingChange") // Resume listening for changes, and get all previous changes - resumeListeningForUpdates(pausedListener, consistencyManager: consistencyManager) - XCTAssertFalse(consistencyManager.isPaused(pausedListener)) + resumeListener(pausedListener, consistencyManager: consistencyManager) + XCTAssertFalse(consistencyManager.isListenerPaused(pausedListener)) // Make sure that we received no updates on the paused listener. testModel = testModelFromListenerModel(pausedListener.model)! @@ -462,20 +462,20 @@ class PauseListenerTests: ConsistencyManagerTestCase { XCTAssertEqual(updates.deletedModelIds, []) // We delete models, but then readd them before resuming listening again, so this should be empty. } - XCTAssertFalse(consistencyManager.isPaused(pausedListener)) - pauseListeningForUpdates(pausedListener, consistencyManager: consistencyManager) - XCTAssertTrue(consistencyManager.isPaused(pausedListener)) + XCTAssertFalse(consistencyManager.isListenerPaused(pausedListener)) + pauseListener(pausedListener, consistencyManager: consistencyManager) + XCTAssertTrue(consistencyManager.isListenerPaused(pausedListener)) let modelToDelete = TestRequiredModel(id: "3", data: 0) deleteModel(modelToDelete, consistencyManager: consistencyManager) - updateWithNewModel(TestModel(id: "0", data: 0, children: [child, otherChild], requiredModel: TestRequiredModel(id: "1", data: -1)), consistencyManager: consistencyManager) - updateWithNewModel(TestModel(id: "0", data: 0, children: [child, otherChild], requiredModel: TestRequiredModel(id: "1", data: 0)), consistencyManager: consistencyManager) - updateWithNewModel(TestModel(id: "2", data: 6, children: [], requiredModel: TestRequiredModel(id: "3", data: -1)), consistencyManager: consistencyManager) - updateWithNewModel(TestModel(id: "2", data: 6, children: [], requiredModel: TestRequiredModel(id: "3", data: 0)), consistencyManager: consistencyManager, context: "Last Change") + updateNewModel(TestModel(id: "0", data: 0, children: [child, otherChild], requiredModel: TestRequiredModel(id: "1", data: -1)), consistencyManager: consistencyManager) + updateNewModel(TestModel(id: "0", data: 0, children: [child, otherChild], requiredModel: TestRequiredModel(id: "1", data: 0)), consistencyManager: consistencyManager) + updateNewModel(TestModel(id: "2", data: 6, children: [], requiredModel: TestRequiredModel(id: "3", data: -1)), consistencyManager: consistencyManager) + updateNewModel(TestModel(id: "2", data: 6, children: [], requiredModel: TestRequiredModel(id: "3", data: 0)), consistencyManager: consistencyManager, context: "Last Change") // Resume listening for changes, and get all previous changes - resumeListeningForUpdates(pausedListener, consistencyManager: consistencyManager) - XCTAssertFalse(consistencyManager.isPaused(pausedListener)) + resumeListener(pausedListener, consistencyManager: consistencyManager) + XCTAssertFalse(consistencyManager.isListenerPaused(pausedListener)) XCTAssertEqual(contextStringSavedToPausedListener, "Last Change") XCTAssertTrue(calledUpdateClosure) } @@ -519,10 +519,10 @@ class PauseListenerTests: ConsistencyManagerTestCase { testModel = testModelFromListenerModel(activeListener.model)! XCTAssertEqual(testModel.requiredModel.data, 0) - XCTAssertFalse(consistencyManager.isPaused(pausedListener)) - pauseListeningForUpdates(pausedListener, consistencyManager: consistencyManager) - XCTAssertTrue(consistencyManager.isPaused(pausedListener)) - updateWithNewModel(TestModel(id: "0", data: 1, children: [], requiredModel: TestRequiredModel(id: "1", data: 0)), consistencyManager: consistencyManager) + XCTAssertFalse(consistencyManager.isListenerPaused(pausedListener)) + pauseListener(pausedListener, consistencyManager: consistencyManager) + XCTAssertTrue(consistencyManager.isListenerPaused(pausedListener)) + updateNewModel(TestModel(id: "0", data: 1, children: [], requiredModel: TestRequiredModel(id: "1", data: 0)), consistencyManager: consistencyManager) deleteModel(testModel, consistencyManager: consistencyManager) // Delete has happened, but we didn't listen for it on the first listener. @@ -533,8 +533,8 @@ class PauseListenerTests: ConsistencyManagerTestCase { XCTAssertTrue(calledActiveListenerUpdateClosure) // Resume listening for changes, and get all previous changes. - resumeListeningForUpdates(pausedListener, consistencyManager: consistencyManager) - XCTAssertFalse(consistencyManager.isPaused(pausedListener)) + resumeListener(pausedListener, consistencyManager: consistencyManager) + XCTAssertFalse(consistencyManager.isListenerPaused(pausedListener)) XCTAssertTrue(calledPausedListenerUpdateClosure) XCTAssertTrue(calledActiveListenerUpdateClosure) XCTAssertEqual(numberOfUpdatesforPausedListener, 1) @@ -564,11 +564,11 @@ class PauseListenerTests: ConsistencyManagerTestCase { XCTAssertEqual(numberOfUpdates, 1) - XCTAssertFalse(consistencyManager.isPaused(listener)) - pauseListeningForUpdates(listener, consistencyManager: consistencyManager) - XCTAssertTrue(consistencyManager.isPaused(listener)) - resumeListeningForUpdates(listener, consistencyManager: consistencyManager) - XCTAssertFalse(consistencyManager.isPaused(listener)) + XCTAssertFalse(consistencyManager.isListenerPaused(listener)) + pauseListener(listener, consistencyManager: consistencyManager) + XCTAssertTrue(consistencyManager.isListenerPaused(listener)) + resumeListener(listener, consistencyManager: consistencyManager) + XCTAssertFalse(consistencyManager.isListenerPaused(listener)) XCTAssertEqual(numberOfUpdates, 1) XCTAssertTrue(listener.model == nil) @@ -596,18 +596,18 @@ class PauseListenerTests: ConsistencyManagerTestCase { } addListener(listener, toConsistencyManager: consistencyManager) - XCTAssertFalse(consistencyManager.isPaused(listener)) - pauseListeningForUpdates(listener, consistencyManager: consistencyManager) - XCTAssertTrue(consistencyManager.isPaused(listener)) + XCTAssertFalse(consistencyManager.isListenerPaused(listener)) + pauseListener(listener, consistencyManager: consistencyManager) + XCTAssertTrue(consistencyManager.isListenerPaused(listener)) let updateModel = TestModel(id: "2", data: 1, children: [], requiredModel: TestRequiredModel(id: nil, data: 0)) - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) deleteModel(modelToDelete, consistencyManager: consistencyManager) XCTAssertEqual(numberOfUpdates, 0) - resumeListeningForUpdates(listener, consistencyManager: consistencyManager) - XCTAssertFalse(consistencyManager.isPaused(listener)) + resumeListener(listener, consistencyManager: consistencyManager) + XCTAssertFalse(consistencyManager.isListenerPaused(listener)) XCTAssertEqual(numberOfUpdates, 1) XCTAssertTrue(listener.model == nil) @@ -630,17 +630,17 @@ class PauseListenerTests: ConsistencyManagerTestCase { addListener(listener, toConsistencyManager: consistencyManager) - XCTAssertFalse(consistencyManager.isPaused(listener)) - pauseListeningForUpdates(listener, consistencyManager: consistencyManager) - XCTAssertTrue(consistencyManager.isPaused(listener)) + XCTAssertFalse(consistencyManager.isListenerPaused(listener)) + pauseListener(listener, consistencyManager: consistencyManager) + XCTAssertTrue(consistencyManager.isListenerPaused(listener)) let newModel = TestRequiredModel(id: "0", data: 1) listener.model = newModel // Don't wait for this to finish, we want to resume listening before this happens - consistencyManager.updateWithNewModel(newModel) + consistencyManager.updateModel(newModel) - resumeListeningForUpdates(listener, consistencyManager: consistencyManager) - XCTAssertFalse(consistencyManager.isPaused(listener)) + resumeListener(listener, consistencyManager: consistencyManager) + XCTAssertFalse(consistencyManager.isListenerPaused(listener)) XCTAssertTrue(listener.model?.isEqualToModel(newModel) ?? false) } @@ -658,7 +658,7 @@ class PauseListenerTests: ConsistencyManagerTestCase { listener = strongListener addListener(strongListener, toConsistencyManager: consistencyManager) - pauseListeningForUpdates(strongListener, consistencyManager: consistencyManager) + pauseListener(strongListener, consistencyManager: consistencyManager) } XCTAssertNil(listener) @@ -674,7 +674,7 @@ class PauseListenerTests: ConsistencyManagerTestCase { autoreleasepool { let strongListener: TestListener? = TestListener(model: model) addListener(strongListener!, toConsistencyManager: consistencyManager) - pauseListeningForUpdates(strongListener!, consistencyManager: consistencyManager) + pauseListener(strongListener!, consistencyManager: consistencyManager) XCTAssertEqual(consistencyManager.pausedListeners.count, 1) } @@ -699,7 +699,7 @@ class PauseListenerTests: ConsistencyManagerTestCase { let batchUpdateListener = BatchListener(listeners: [individualListener], consistencyManager: consistencyManager) let batchDelegate = TestBatchListenersDelegate() batchUpdateListener.delegate = batchDelegate - pauseListeningForUpdates(batchUpdateListener, consistencyManager: consistencyManager) + pauseListener(batchUpdateListener, consistencyManager: consistencyManager) let updateModel = TestRequiredModel(id: "1", data: 3) @@ -708,10 +708,10 @@ class PauseListenerTests: ConsistencyManagerTestCase { updates += 1 } - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: "context") + updateNewModel(updateModel, consistencyManager: consistencyManager, context: "context") XCTAssertEqual(updates, 0) - resumeListeningForUpdates(batchUpdateListener, consistencyManager: consistencyManager) + resumeListener(batchUpdateListener, consistencyManager: consistencyManager) XCTAssertEqual(updates, 1) } @@ -727,7 +727,7 @@ class PauseListenerTests: ConsistencyManagerTestCase { let batchDelegate = TestBatchListenersDelegate() batchUpdateListener.delegate = batchDelegate - pauseListeningForUpdates(batchUpdateListener, consistencyManager: consistencyManager) + pauseListener(batchUpdateListener, consistencyManager: consistencyManager) let updateModel = TestRequiredModel(id: "1", data: 3) @@ -736,10 +736,10 @@ class PauseListenerTests: ConsistencyManagerTestCase { updates += 1 } - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: "context") + updateNewModel(updateModel, consistencyManager: consistencyManager, context: "context") XCTAssertEqual(updates, 0) - resumeListeningForUpdates(batchUpdateListener, consistencyManager: consistencyManager) + resumeListener(batchUpdateListener, consistencyManager: consistencyManager) XCTAssertEqual(updates, 1) } @@ -761,7 +761,7 @@ class PauseListenerTests: ConsistencyManagerTestCase { batchUpdateListener.delegate = batchDelegate addListener(individualListener, toConsistencyManager: consistencyManager) - pauseListeningForUpdates(individualListener, consistencyManager: consistencyManager) + pauseListener(individualListener, consistencyManager: consistencyManager) var updatesToBatch = 0 batchDelegate.updateClosure = { _, _, _, _ in @@ -774,11 +774,11 @@ class PauseListenerTests: ConsistencyManagerTestCase { } let updateModel = TestModel(id: "0", data: 4, children: [], requiredModel: TestRequiredModel(id: "1", data: 0)) - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: "context") + updateNewModel(updateModel, consistencyManager: consistencyManager, context: "context") XCTAssertEqual(updatesToBatch, 1) XCTAssertEqual(updatesToIndividual, 1) - resumeListeningForUpdates(individualListener, consistencyManager: consistencyManager) + resumeListener(individualListener, consistencyManager: consistencyManager) XCTAssertEqual(updatesToBatch, 1) XCTAssertEqual(updatesToIndividual, 1) } diff --git a/ConsistencyManagerTests/ProjectionTests.swift b/ConsistencyManagerTests/ProjectionTests.swift index 88ae6bc..cce73ff 100644 --- a/ConsistencyManagerTests/ProjectionTests.swift +++ b/ConsistencyManagerTests/ProjectionTests.swift @@ -41,7 +41,7 @@ class ProjectionTests: ConsistencyManagerTestCase { // We expect otherData to update but data to be left alone let expectedModel = ProjectionTreeModel(type: .both, id: 1, data: 2, otherData: 4, child: nil, otherChild: nil) - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: "context") + updateNewModel(updateModel, consistencyManager: consistencyManager, context: "context") // Should have updated the model of the listener if let testModel = listener.model as? ProjectionTreeModel { @@ -80,7 +80,7 @@ class ProjectionTests: ConsistencyManagerTestCase { // This should cause both children to update one of their fields let updateModel = ProjectionTreeModel(type: .both, id: 1, data: 3, otherData: 3, child: nil, otherChild: nil) - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: "context") + updateNewModel(updateModel, consistencyManager: consistencyManager, context: "context") // Should have updated the model of the listener if let testModel = listener.model as? ProjectionTreeModel { @@ -123,7 +123,7 @@ class ProjectionTests: ConsistencyManagerTestCase { let updateOtherChild = ProjectionTreeModel(type: .otherData, id: 1, data: nil, otherData: 3, child: nil, otherChild: nil) let updateModel = ProjectionTreeModel(type: .both, id: 2, data: 5, otherData: 5, child: updateChild, otherChild: updateOtherChild) - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: "context") + updateNewModel(updateModel, consistencyManager: consistencyManager, context: "context") // Should have updated the model of the listener if let testModel = listener.model as? ProjectionTreeModel { @@ -156,7 +156,7 @@ class ProjectionTests: ConsistencyManagerTestCase { // No update occurs here, because the children with id=1 are of different projection types that do not overlap. let updateModel = ProjectionTreeModel(type: .otherData, id: 1, data: nil, otherData: 5, child: nil, otherChild: nil) - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: "context") + updateNewModel(updateModel, consistencyManager: consistencyManager, context: "context") // Nothing should have changed if let listenerModel = listener.model as? ProjectionTreeModel { diff --git a/ConsistencyManagerTests/RaceConditionsTests.swift b/ConsistencyManagerTests/RaceConditionsTests.swift index 847a5bd..2377e1c 100644 --- a/ConsistencyManagerTests/RaceConditionsTests.swift +++ b/ConsistencyManagerTests/RaceConditionsTests.swift @@ -48,7 +48,7 @@ class RaceConditionsTests: ConsistencyManagerTestCase { } } - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: 4) + updateNewModel(updateModel, consistencyManager: consistencyManager, context: 4) // Should have the new model here XCTAssertEqual(testModelFromListenerModel(listener.model)?.data, 2) @@ -107,7 +107,7 @@ class RaceConditionsTests: ConsistencyManagerTestCase { listener1.updateClosure = modelUpdated listener2.updateClosure = modelUpdated - updateWithNewModel(updateModel, consistencyManager: consistencyManager, context: nil) + updateNewModel(updateModel, consistencyManager: consistencyManager, context: nil) // Should have the new model here XCTAssertEqual((listener1.model as! TestModel).requiredModel.data, 1) diff --git a/ConsistencyManagerTests/ShortCurcuitTests.swift b/ConsistencyManagerTests/ShortCurcuitTests.swift index 29c63d2..5236c2b 100644 --- a/ConsistencyManagerTests/ShortCurcuitTests.swift +++ b/ConsistencyManagerTests/ShortCurcuitTests.swift @@ -33,7 +33,7 @@ class ShortCurcuitTests: ConsistencyManagerTestCase { XCTFail() } - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) // Let's now create an update which should cause the consistency manager to update let secondUpdateModel = TestModel(id: updateModel.id, data: -42, children: updateModel.children, requiredModel: updateModel.requiredModel) @@ -53,7 +53,7 @@ class ShortCurcuitTests: ConsistencyManagerTestCase { } } - updateWithNewModel(secondUpdateModel, consistencyManager: consistencyManager) + updateNewModel(secondUpdateModel, consistencyManager: consistencyManager) XCTAssertTrue(calledUpdateClosure) } diff --git a/ConsistencyManagerTests/UpdateFlowTests.swift b/ConsistencyManagerTests/UpdateFlowTests.swift index ee1fa26..4d71453 100644 --- a/ConsistencyManagerTests/UpdateFlowTests.swift +++ b/ConsistencyManagerTests/UpdateFlowTests.swift @@ -37,7 +37,7 @@ class UpdateFlowTests: ConsistencyManagerTestCase { let updateSubtree1 = TestModel(id: "1", data: 1, children: [extraChild], requiredModel: requiredModel) let updateTestModel = TestModel(id: "5", data: 0, children: [updateSubtree1], requiredModel: requiredModel) - updateWithNewModel(updateTestModel, consistencyManager: consistencyManager) + updateNewModel(updateTestModel, consistencyManager: consistencyManager) // New model should have the extra child added let expectedModel = TestModel(id: "0", data: 0, children: [updateSubtree1], requiredModel: requiredModel) @@ -55,7 +55,7 @@ class UpdateFlowTests: ConsistencyManagerTestCase { let additionalChild = TestModel(id: "200", data: 200, children: [], requiredModel: newRequiredModel) let newChild = TestModel(id: "2", data: -2, children: [additionalChild], requiredModel: newRequiredModel) - updateWithNewModel(newChild, consistencyManager: consistencyManager) + updateNewModel(newChild, consistencyManager: consistencyManager) let newUpdatedSubtree = TestModel(id: "1", data: 1, children: [newChild], requiredModel: requiredModel) let nextExpectedModel = TestModel(id: "0", data: 0, children: [newUpdatedSubtree], requiredModel: requiredModel) @@ -87,7 +87,7 @@ class UpdateFlowTests: ConsistencyManagerTestCase { let updateSubtree1 = TestModel(id: "1", data: 1, children: [newChild], requiredModel: requiredModel) let updateTestModel = TestModel(id: "5", data: 0, children: [updateSubtree1], requiredModel: requiredModel) - updateWithNewModel(updateTestModel, consistencyManager: consistencyManager) + updateNewModel(updateTestModel, consistencyManager: consistencyManager) // New model should have the child updated let expectedModel = TestModel(id: "0", data: 0, children: [updateSubtree1], requiredModel: requiredModel) @@ -108,7 +108,7 @@ class UpdateFlowTests: ConsistencyManagerTestCase { XCTFail() } - updateWithNewModel(originalChildUpdated, consistencyManager: consistencyManager) + updateNewModel(originalChildUpdated, consistencyManager: consistencyManager) // Double check to make sure everything is as before if let model = listener.model as? TestModel { diff --git a/ConsistencyManagerTests/UpdateOrderingTests.swift b/ConsistencyManagerTests/UpdateOrderingTests.swift index 26ae858..fd5fa42 100644 --- a/ConsistencyManagerTests/UpdateOrderingTests.swift +++ b/ConsistencyManagerTests/UpdateOrderingTests.swift @@ -57,8 +57,8 @@ class UpdateOrderingTests: ConsistencyManagerTestCase { // First, let's do a long operation, which should complete first // For this operation, we'll pass in the large model - consistencyManager.updateWithNewModel(newLargeModel) - consistencyManager.updateWithNewModel(newModel) + consistencyManager.updateModel(newLargeModel) + consistencyManager.updateModel(newModel) // NOTE: Here we SHOULD NOT use the SyncronousHelperFunctions class because that will ensure the ordering in the tests diff --git a/ConsistencyManagerTests/UpdateTests.swift b/ConsistencyManagerTests/UpdateTests.swift index 1a8efec..83fa2c4 100644 --- a/ConsistencyManagerTests/UpdateTests.swift +++ b/ConsistencyManagerTests/UpdateTests.swift @@ -34,7 +34,7 @@ class UpdateTests: ConsistencyManagerTestCase { addListener(listener, toConsistencyManager: consistencyManager) let updateModel = TestModel(id: "0", data: -1, children: [], requiredModel: TestRequiredModel(id: "4", data: -1)) - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) // Should have updated the model of the listener if let testModel = testModelFromListenerModel(listener.model) { @@ -69,7 +69,7 @@ class UpdateTests: ConsistencyManagerTestCase { let expectedModel = TestModel(id: "0", data: -1, children: [], requiredModel: TestRequiredModel(id: "4", data: -1)) let updateModel = TestModel(id: "-100", data: -100, children: [expectedModel], requiredModel: TestRequiredModel(id: "4", data: -1)) - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) // Should have updated the model of the listener if let testModel = testModelFromListenerModel(listener.model) { @@ -104,7 +104,7 @@ class UpdateTests: ConsistencyManagerTestCase { addListener(listener, toConsistencyManager: consistencyManager) let updateModel = TestModel(id: "\(replacementId)", data: -100, children: [], requiredModel: TestRequiredModel(id: "4", data: -1)) - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) // Let's search for the model with the correct id (the one we replaced) // Let's ensure that it has been replaced with the correct model @@ -147,7 +147,7 @@ class UpdateTests: ConsistencyManagerTestCase { addListener(listener, toConsistencyManager: consistencyManager) let expectedModel = TestModel(id: "\(replacementId)", data: -100, children: [], requiredModel: TestRequiredModel(id: "4", data: -1)) let updateModel = TestModel(id: "-200", data: -200, children: [expectedModel], requiredModel: TestRequiredModel(id: "4", data: -1)) - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) // Let's search for the model with the correct id (the one we replaced) // Let's ensure that it has been replaced with the correct model @@ -192,7 +192,7 @@ class UpdateTests: ConsistencyManagerTestCase { let updateSubtree1 = TestModel(id: "1", data: -1, children: [updateSubtree2], requiredModel: requiredModel) let updateTestModel = TestModel(id: "5", data: 0, children: [updateSubtree2, updateSubtree1], requiredModel: requiredModel) - updateWithNewModel(updateTestModel, consistencyManager: consistencyManager) + updateNewModel(updateTestModel, consistencyManager: consistencyManager) // New model should be the same as testModel but with different children let expectedModel = TestModel(id: "0", data: 0, children: [updateSubtree1, updateSubtree2], requiredModel: requiredModel) @@ -228,7 +228,7 @@ class UpdateTests: ConsistencyManagerTestCase { return id % 5 == 0 } - updateWithNewModel(updateModel, consistencyManager: consistencyManager) + updateNewModel(updateModel, consistencyManager: consistencyManager) if let model = testModelFromListenerModel(listener.model) { // Shouldn't have changed diff --git a/README.md b/README.md index 2025cd0..67264ac 100644 --- a/README.md +++ b/README.md @@ -59,3 +59,17 @@ To get started, you should take a look at the docs: https://linkedin.github.io/ConsistencyManager-iOS +## Swift Version + +We are currently not maintaining separate branches for different Swift versions. You can use an older and stable version of the Consistency Manager for older versions of Swift though. HEAD currently supports Swift 3. + +| Swift Version | Consistency Manager Version | +|---------------|------------------------------| +| 1 | Not supported | +| 2.0 - 2.1 | 2.x.x (untested) | +| 2.2 - 2.3 | 2.x.x | +| 3 (Easy migration API) | 3.x.x | +| 3 (Better API) | 4.x.x | + +NOTE: If you are migrating to Swift 3, consider using version 3.0.0 first, then migrating to 4.x.x. 3.0.0 migrates the code to the new syntax without making any API changes. 4.x.x introduces a better API which is more consistent with the new Swift 3 API guidelines. + diff --git a/SampleApp/ConsistencyManagerDemo.xcodeproj/project.pbxproj b/SampleApp/ConsistencyManagerDemo.xcodeproj/project.pbxproj index a862bd1..2ae6521 100644 --- a/SampleApp/ConsistencyManagerDemo.xcodeproj/project.pbxproj +++ b/SampleApp/ConsistencyManagerDemo.xcodeproj/project.pbxproj @@ -13,6 +13,7 @@ 611562D51CC06B810001F5CE /* TestModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 611562D01CC06B810001F5CE /* TestModel.swift */; }; 611562D61CC06B810001F5CE /* TestModelGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 611562D11CC06B810001F5CE /* TestModelGenerator.swift */; }; 611562D71CC06B810001F5CE /* TestRequiredModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 611562D21CC06B810001F5CE /* TestRequiredModel.swift */; }; + 61BCF9C31D91A08A0034F8BA /* ProjectionTestModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61BCF9C21D91A08A0034F8BA /* ProjectionTestModel.swift */; }; 61DB684F1CBC596F00BD1F65 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61DB684E1CBC596F00BD1F65 /* AppDelegate.swift */; }; 61DB68561CBC596F00BD1F65 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 61DB68551CBC596F00BD1F65 /* Assets.xcassets */; }; 61DB68591CBC596F00BD1F65 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 61DB68571CBC596F00BD1F65 /* LaunchScreen.storyboard */; }; @@ -46,6 +47,7 @@ 611562D01CC06B810001F5CE /* TestModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TestModel.swift; path = ../../ConsistencyManagerTests/HelperClasses/TestModel.swift; sourceTree = ""; }; 611562D11CC06B810001F5CE /* TestModelGenerator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TestModelGenerator.swift; path = ../../ConsistencyManagerTests/HelperClasses/TestModelGenerator.swift; sourceTree = ""; }; 611562D21CC06B810001F5CE /* TestRequiredModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = TestRequiredModel.swift; path = ../../ConsistencyManagerTests/HelperClasses/TestRequiredModel.swift; sourceTree = ""; }; + 61BCF9C21D91A08A0034F8BA /* ProjectionTestModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ProjectionTestModel.swift; path = ../../ConsistencyManagerTests/HelperClasses/ProjectionTestModel.swift; sourceTree = ""; }; 61DB684B1CBC596F00BD1F65 /* ConsistencyManagerDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ConsistencyManagerDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; 61DB684E1CBC596F00BD1F65 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 61DB68551CBC596F00BD1F65 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; @@ -112,6 +114,7 @@ 611562D01CC06B810001F5CE /* TestModel.swift */, 611562D11CC06B810001F5CE /* TestModelGenerator.swift */, 611562D21CC06B810001F5CE /* TestRequiredModel.swift */, + 61BCF9C21D91A08A0034F8BA /* ProjectionTestModel.swift */, ); name = HelperClasses; sourceTree = ""; @@ -260,7 +263,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0720; - LastUpgradeCheck = 0720; + LastUpgradeCheck = 0800; ORGANIZATIONNAME = LinkedIn; TargetAttributes = { 61DB684A1CBC596F00BD1F65 = { @@ -358,7 +361,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; showEnvVarsInLog = 0; }; D1F2E7B3AED4AD7F0212ED88 /* [CP] Embed Pods Frameworks */ = { @@ -388,7 +391,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; + shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; showEnvVarsInLog = 0; }; E89AD40B1913B6D56B8EC358 /* [CP] Copy Pods Resources */ = { @@ -429,6 +432,7 @@ buildActionMask = 2147483647; files = ( 611562D31CC06B810001F5CE /* ConsistencyManagerTestCase.swift in Sources */, + 61BCF9C31D91A08A0034F8BA /* ProjectionTestModel.swift in Sources */, 611562D41CC06B810001F5CE /* TestListener.swift in Sources */, 611562D61CC06B810001F5CE /* TestModelGenerator.swift in Sources */, 61DB68871CBC5C5200BD1F65 /* PerformanceTests.swift in Sources */, @@ -472,8 +476,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -516,8 +522,10 @@ CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; @@ -536,6 +544,7 @@ IPHONEOS_DEPLOYMENT_TARGET = 9.2; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; + SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; VALIDATE_PRODUCT = YES; }; name = Release; @@ -544,6 +553,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 6E210B67B1E1FD1686485F50 /* Pods-ConsistencyManagerDemo.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = ConsistencyManagerDemo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -558,6 +568,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 734D065F5910B4D21566E7D5 /* Pods-ConsistencyManagerDemo.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; INFOPLIST_FILE = ConsistencyManagerDemo/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; @@ -572,6 +583,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = 759A782C6CADF4AC944DF279 /* Pods-ConsistencyManagerDemoTests.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; INFOPLIST_FILE = ConsistencyManagerDemoTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; @@ -586,6 +598,7 @@ isa = XCBuildConfiguration; baseConfigurationReference = FF19B31ACE93FA0F4E627B2C /* Pods-ConsistencyManagerDemoTests.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; INFOPLIST_FILE = ConsistencyManagerDemoTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; diff --git a/SampleApp/ConsistencyManagerDemo/Network/UpdateHelpers.swift b/SampleApp/ConsistencyManagerDemo/Network/UpdateHelpers.swift index 7abb462..a3f898c 100644 --- a/SampleApp/ConsistencyManagerDemo/Network/UpdateHelpers.swift +++ b/SampleApp/ConsistencyManagerDemo/Network/UpdateHelpers.swift @@ -16,6 +16,6 @@ class UpdateHelper: NSObject { // Here is where you would also send a network request // Note: These helper classes can shared across multiple view controller easily since all they need is an Update object let newUpdate = UpdateModel(id: update.id, liked: like) - ConsistencyManager.sharedInstance.updateWithNewModel(newUpdate) + ConsistencyManager.sharedInstance.updateModel(newUpdate) } } diff --git a/SampleApp/ConsistencyManagerDemo/ViewControllers/DetailViewController.swift b/SampleApp/ConsistencyManagerDemo/ViewControllers/DetailViewController.swift index 5167ca7..b4b642f 100644 --- a/SampleApp/ConsistencyManagerDemo/ViewControllers/DetailViewController.swift +++ b/SampleApp/ConsistencyManagerDemo/ViewControllers/DetailViewController.swift @@ -32,7 +32,7 @@ class DetailViewController: UIViewController, ConsistencyManagerListener { edgesForExtendedLayout = UIRectEdge() title = update.id - ConsistencyManager.sharedInstance.listenForUpdates(self) + ConsistencyManager.sharedInstance.addListener(self) loadData() } diff --git a/SampleApp/ConsistencyManagerDemo/ViewControllers/MainViewController.swift b/SampleApp/ConsistencyManagerDemo/ViewControllers/MainViewController.swift index faa6eb1..718b583 100644 --- a/SampleApp/ConsistencyManagerDemo/ViewControllers/MainViewController.swift +++ b/SampleApp/ConsistencyManagerDemo/ViewControllers/MainViewController.swift @@ -24,11 +24,11 @@ class MainViewController: UIViewController, UITableViewDataSource, UITableViewDe title = "Demo" - ConsistencyManager.sharedInstance.listenForUpdates(self) + ConsistencyManager.sharedInstance.addListener(self) Network.fetchUpdates() { stream in self.stream = stream - ConsistencyManager.sharedInstance.listenForUpdates(self) + ConsistencyManager.sharedInstance.addListener(self) self.tableView.reloadData() } diff --git a/SampleApp/ConsistencyManagerDemoTests/PerformanceTests.swift b/SampleApp/ConsistencyManagerDemoTests/PerformanceTests.swift index 3b4bdba..e69e1f6 100644 --- a/SampleApp/ConsistencyManagerDemoTests/PerformanceTests.swift +++ b/SampleApp/ConsistencyManagerDemoTests/PerformanceTests.swift @@ -39,8 +39,8 @@ class PerformanceTests: ConsistencyManagerTestCase { addListener(listener, toConsistencyManager: consistencyManager) // Now let's test this by giving the SAME model as an update. This takes a lot of work because everything is considered a change. - measureBlock() { - self.updateWithNewModel(model, consistencyManager: consistencyManager, timeout: 1000) + measure() { + self.updateNewModel(model, consistencyManager: consistencyManager, timeout: 1000) } } @@ -69,8 +69,8 @@ class PerformanceTests: ConsistencyManagerTestCase { } // Now let's test this by giving the SAME model as an update. This takes a lot of work because everything is considered a change. - measureBlock() { - self.updateWithNewModel(model, consistencyManager: consistencyManager, timeout: 1000) + measure() { + self.updateNewModel(model, consistencyManager: consistencyManager, timeout: 1000) } } @@ -90,8 +90,8 @@ class PerformanceTests: ConsistencyManagerTestCase { addListener(listener, toConsistencyManager: consistencyManager) // Now let's test this by giving the SAME model as an update. This takes a lot of work because everything is considered a change. - measureBlock() { - self.updateWithNewModel(model, consistencyManager: consistencyManager, timeout: 1000) + measure() { + self.updateNewModel(model, consistencyManager: consistencyManager, timeout: 1000) } } @@ -106,7 +106,7 @@ class PerformanceTests: ConsistencyManagerTestCase { func testListenerSpeedLargeModel() { let model = TestModelGenerator.testModelWithTotalChildren(1000, branchingFactor: 50) { _ in return true } let listener = TestListener(model: model) - let consistencyManagers = Array(count: 20, repeatedValue: ConsistencyManager()) + let consistencyManagers = Array(repeating: ConsistencyManager(), count: 20) var index = 0 measure() { diff --git a/SampleApp/Podfile.lock b/SampleApp/Podfile.lock index ef94600..5bef6f4 100644 --- a/SampleApp/Podfile.lock +++ b/SampleApp/Podfile.lock @@ -1,5 +1,5 @@ PODS: - - ConsistencyManager (2.0.2) + - ConsistencyManager (3.0.0) DEPENDENCIES: - ConsistencyManager (from `..`) @@ -9,8 +9,8 @@ EXTERNAL SOURCES: :path: .. SPEC CHECKSUMS: - ConsistencyManager: 16842eca9215db1f83aa413dbe1bbc7bcf49f7ff + ConsistencyManager: 2312b687bbd3875ae5b40a220239e969448d2191 -PODFILE CHECKSUM: 059c638441a9686bc44a9c763919db7de9ffddf9 +PODFILE CHECKSUM: 9e62ac7c66cae577789198b85ddcb72b6bdc00ed -COCOAPODS: 1.0.1 +COCOAPODS: 1.1.0.rc.2 diff --git a/SampleApp/Pods/Local Podspecs/ConsistencyManager.podspec.json b/SampleApp/Pods/Local Podspecs/ConsistencyManager.podspec.json index 1fb452b..4d08f3f 100644 --- a/SampleApp/Pods/Local Podspecs/ConsistencyManager.podspec.json +++ b/SampleApp/Pods/Local Podspecs/ConsistencyManager.podspec.json @@ -1,6 +1,6 @@ { "name": "ConsistencyManager", - "version": "2.0.2", + "version": "3.0.0", "license": { "type": "Apache License, Version 2.0" }, @@ -9,7 +9,7 @@ "summary": "Manages the consistency of immutable models.", "source": { "git": "https://github.com/linkedin/ConsistencyManager-iOS.git", - "tag": "2.0.2" + "tag": "3.0.0" }, "source_files": "ConsistencyManager/**/*.swift", "platforms": { diff --git a/SampleApp/Pods/Manifest.lock b/SampleApp/Pods/Manifest.lock index ef94600..5bef6f4 100644 --- a/SampleApp/Pods/Manifest.lock +++ b/SampleApp/Pods/Manifest.lock @@ -1,5 +1,5 @@ PODS: - - ConsistencyManager (2.0.2) + - ConsistencyManager (3.0.0) DEPENDENCIES: - ConsistencyManager (from `..`) @@ -9,8 +9,8 @@ EXTERNAL SOURCES: :path: .. SPEC CHECKSUMS: - ConsistencyManager: 16842eca9215db1f83aa413dbe1bbc7bcf49f7ff + ConsistencyManager: 2312b687bbd3875ae5b40a220239e969448d2191 -PODFILE CHECKSUM: 059c638441a9686bc44a9c763919db7de9ffddf9 +PODFILE CHECKSUM: 9e62ac7c66cae577789198b85ddcb72b6bdc00ed -COCOAPODS: 1.0.1 +COCOAPODS: 1.1.0.rc.2 diff --git a/SampleApp/Pods/Pods.xcodeproj/project.pbxproj b/SampleApp/Pods/Pods.xcodeproj/project.pbxproj index df92df7..3116942 100644 --- a/SampleApp/Pods/Pods.xcodeproj/project.pbxproj +++ b/SampleApp/Pods/Pods.xcodeproj/project.pbxproj @@ -1,1899 +1,784 @@ - - - - - archiveVersion - 1 - classes - - objectVersion - 46 - objects - - 0144C760EF25E554776ED5ECCA43CCEE - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - WeakArray.swift - sourceTree - <group> - - 07FEC02D0D67674AC7D95ADE2CF3FBCA - - includeInIndex - 1 - isa - PBXFileReference - path - ConsistencyManager.modulemap - sourceTree - <group> - - 087C0E07E694E836BA805FE795DB2A3E - - baseConfigurationReference - EECEF8CBAF61CF0C2988F5A14BF41D8C - buildSettings - - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - CURRENT_PROJECT_VERSION - 1 - DEBUG_INFORMATION_FORMAT - dwarf - DEFINES_MODULE - YES - DYLIB_COMPATIBILITY_VERSION - 1 - DYLIB_CURRENT_VERSION - 1 - DYLIB_INSTALL_NAME_BASE - @rpath - ENABLE_STRICT_OBJC_MSGSEND - YES - GCC_NO_COMMON_BLOCKS - YES - GCC_PREFIX_HEADER - Target Support Files/ConsistencyManager/ConsistencyManager-prefix.pch - INFOPLIST_FILE - Target Support Files/ConsistencyManager/Info.plist - INSTALL_PATH - $(LOCAL_LIBRARY_DIR)/Frameworks - IPHONEOS_DEPLOYMENT_TARGET - 8.0 - LD_RUNPATH_SEARCH_PATHS - - $(inherited) - @executable_path/Frameworks - @loader_path/Frameworks - - MODULEMAP_FILE - Target Support Files/ConsistencyManager/ConsistencyManager.modulemap - MTL_ENABLE_DEBUG_INFO - YES - PRODUCT_NAME - ConsistencyManager - SDKROOT - iphoneos - SKIP_INSTALL - YES - SWIFT_OPTIMIZATION_LEVEL - -Onone - SWIFT_VERSION - 3.0 - TARGETED_DEVICE_FAMILY - 1,2 - VERSIONING_SYSTEM - apple-generic - VERSION_INFO_PREFIX - - - isa - XCBuildConfiguration - name - Debug - - 0BDC9F4AFD6145795A4651F5CADC8C63 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text - path - Pods-ConsistencyManagerDemoTests-acknowledgements.markdown - sourceTree - <group> - - 119F3BF3CCA32D4BB089FF917ECD5C13 - - buildActionMask - 2147483647 - files - - 946F6A686048EA441C57692609C7D832 - ECEED617A5BCA13DEBC088D96919A256 - 4634C767EBD6E76069B986A6CB10504D - 9CF5B934F1E4C8ABAA4BEDE6D492F53B - 7BEAE74FF1D8A510ABD12932094B4065 - CCD1B4DA266FD079ED226B54CBA44B2A - ABFCB533DAAA09ADE1BD0A9F1132C199 - 2B4766559F7FACFEE5CDB0AB152BFA82 - EE235C93D5DBAC5F8B866D42CD698BB2 - D77D2196E19893A32580FDD0485B4C52 - 98012ABE0EB56B1CCE7CD83BB1182914 - F48AFC9B00256A326D88241F8A2B0D0E - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 15F0D3553BEFF8755161731FFA057803 - - children - - C470B1C9FD5BBF72E685ACD69A4E5883 - 402434D7100D779B1A4EBE57F0534F7F - 172080ADE83198DA3F334137874025AE - 1DB0F36E63222055AB8FB9A455CE3773 - - isa - PBXGroup - name - ConsistencyManager - path - ConsistencyManager - sourceTree - <group> - - 172080ADE83198DA3F334137874025AE - - children - - 43A29A7D5E1E11EF858BCE11E48846AD - AFC63DDDFD77CBEE2B5BF01101035E95 - - isa - PBXGroup - name - Helpers - path - Helpers - sourceTree - <group> - - 1771499526FC1CF6F6134BBC1520E80D - - buildActionMask - 2147483647 - files - - CA7256006DA0588B8ED3D7F4508E78A5 - - isa - PBXHeadersBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 188C8EECBB0DEC67D0093A93F3C75B53 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - ConsistencyManager-prefix.pch - sourceTree - <group> - - 1ACD512C51176E464B79D551AB61119C - - buildActionMask - 2147483647 - files - - 67C6C6DAAA281DD86B4713C67A6069D2 - - isa - PBXHeadersBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 1DB0F36E63222055AB8FB9A455CE3773 - - children - - 4B53017F66A898670D4B0CFE72E80809 - 9A2336708DF8B35DC983A27C75A4A5E9 - D48F23C83E39059CF5B9E92F34C87803 - - isa - PBXGroup - name - Protocols - path - Protocols - sourceTree - <group> - - 2084825E98E719B864802ADC493E7901 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - ModelUpdates.swift - sourceTree - <group> - - 20C77C2EE983F9889A838B60184CA122 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - Pods-ConsistencyManagerDemo-acknowledgements.plist - sourceTree - <group> - - 2A51D87889023F52D63559B9624B15D6 - - fileRef - A2A6FF208CEC4C2861F1E9D42D651453 - isa - PBXBuildFile - - 2B4766559F7FACFEE5CDB0AB152BFA82 - - fileRef - D48F23C83E39059CF5B9E92F34C87803 - isa - PBXBuildFile - - 2D8E8EC45A3A1A1D94AE762CB5028504 - - buildConfigurations - - 84FD87D359382A37B07149A12641B965 - F594C655D48020EC34B00AA63E001773 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 2FE8C909FCB396033C7CCA0FE952815C - - baseConfigurationReference - CB5425EA16CD7E7219B3B20B6A7891BE - buildSettings - - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - CURRENT_PROJECT_VERSION - 1 - DEBUG_INFORMATION_FORMAT - dwarf - DEFINES_MODULE - YES - DYLIB_COMPATIBILITY_VERSION - 1 - DYLIB_CURRENT_VERSION - 1 - DYLIB_INSTALL_NAME_BASE - @rpath - ENABLE_STRICT_OBJC_MSGSEND - YES - GCC_NO_COMMON_BLOCKS - YES - INFOPLIST_FILE - Target Support Files/Pods-ConsistencyManagerDemo/Info.plist - INSTALL_PATH - $(LOCAL_LIBRARY_DIR)/Frameworks - IPHONEOS_DEPLOYMENT_TARGET - 9.2 - LD_RUNPATH_SEARCH_PATHS - - $(inherited) - @executable_path/Frameworks - @loader_path/Frameworks - - MACH_O_TYPE - staticlib - MODULEMAP_FILE - Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo.modulemap - MTL_ENABLE_DEBUG_INFO - YES - OTHER_LDFLAGS - - OTHER_LIBTOOLFLAGS - - PODS_ROOT - $(SRCROOT) - PRODUCT_BUNDLE_IDENTIFIER - org.cocoapods.${PRODUCT_NAME:rfc1034identifier} - PRODUCT_NAME - Pods_ConsistencyManagerDemo - SDKROOT - iphoneos - SKIP_INSTALL - YES - SWIFT_OPTIMIZATION_LEVEL - -Onone - SWIFT_VERSION - 3.0 - TARGETED_DEVICE_FAMILY - 1,2 - VERSIONING_SYSTEM - apple-generic - VERSION_INFO_PREFIX - - - isa - XCBuildConfiguration - name - Debug - - 3C6A32DCBC7F8D779F02A8379CEEE5E7 - - includeInIndex - 1 - isa - PBXFileReference - path - Pods-ConsistencyManagerDemoTests.modulemap - sourceTree - <group> - - 3FB257E3E3B3C4F54E44A4E33BAD8CB2 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - BatchUpdateModel.swift - sourceTree - <group> - - 402434D7100D779B1A4EBE57F0534F7F - - children - - FF0FBA5BD8F2F85C07354AF72EEB1007 - 3FB257E3E3B3C4F54E44A4E33BAD8CB2 - 2084825E98E719B864802ADC493E7901 - 0144C760EF25E554776ED5ECCA43CCEE - 8F08CB6DE1EA371C07F5DAA84698F5DF - - isa - PBXGroup - name - DataStructures - path - DataStructures - sourceTree - <group> - - 433CD3331B6C3787F473C941B61FC68F - - children - - F302CD3B306AF1ED96B9AF31FCDBC26C - - isa - PBXGroup - name - Frameworks - sourceTree - <group> - - 43A29A7D5E1E11EF858BCE11E48846AD - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - CollectionHelpers.swift - sourceTree - <group> - - 440C37B569E235BC92C785E3793973D6 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - Pods-ConsistencyManagerDemo-umbrella.h - sourceTree - <group> - - 4634C767EBD6E76069B986A6CB10504D - - fileRef - 43A29A7D5E1E11EF858BCE11E48846AD - isa - PBXBuildFile - - 4886136AA75D4BD3F3EA7F7737666C3F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - Pods-ConsistencyManagerDemoTests.debug.xcconfig - sourceTree - <group> - - 4B2BE5EF5BCC75C085AF6FB3DFB73BF7 - - fileRef - 73E7C4AA7831B8534275EFD894D577F0 - isa - PBXBuildFile - settings - - ATTRIBUTES - - Public - - - - 4B53017F66A898670D4B0CFE72E80809 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - ConsistencyManagerDelegate.swift - sourceTree - <group> - - 4C2CBFF18062281E97D2F0406A841265 - - baseConfigurationReference - 4886136AA75D4BD3F3EA7F7737666C3F - buildSettings - - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - CURRENT_PROJECT_VERSION - 1 - DEBUG_INFORMATION_FORMAT - dwarf - DEFINES_MODULE - YES - DYLIB_COMPATIBILITY_VERSION - 1 - DYLIB_CURRENT_VERSION - 1 - DYLIB_INSTALL_NAME_BASE - @rpath - ENABLE_STRICT_OBJC_MSGSEND - YES - GCC_NO_COMMON_BLOCKS - YES - INFOPLIST_FILE - Target Support Files/Pods-ConsistencyManagerDemoTests/Info.plist - INSTALL_PATH - $(LOCAL_LIBRARY_DIR)/Frameworks - IPHONEOS_DEPLOYMENT_TARGET - 9.2 - LD_RUNPATH_SEARCH_PATHS - - $(inherited) - @executable_path/Frameworks - @loader_path/Frameworks - - MACH_O_TYPE - staticlib - MODULEMAP_FILE - Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests.modulemap - MTL_ENABLE_DEBUG_INFO - YES - OTHER_LDFLAGS - - OTHER_LIBTOOLFLAGS - - PODS_ROOT - $(SRCROOT) - PRODUCT_BUNDLE_IDENTIFIER - org.cocoapods.${PRODUCT_NAME:rfc1034identifier} - PRODUCT_NAME - Pods_ConsistencyManagerDemoTests - SDKROOT - iphoneos - SKIP_INSTALL - YES - SWIFT_OPTIMIZATION_LEVEL - -Onone - SWIFT_VERSION - 3.0 - TARGETED_DEVICE_FAMILY - 1,2 - VERSIONING_SYSTEM - apple-generic - VERSION_INFO_PREFIX - - - isa - XCBuildConfiguration - name - Debug - - 51089D14D31E1F11878DACC24F040CCF - - fileRef - A2A6FF208CEC4C2861F1E9D42D651453 - isa - PBXBuildFile - - 5332D560A2036BAAED9FCC5603C41CAD - - buildActionMask - 2147483647 - files - - 51089D14D31E1F11878DACC24F040CCF - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 545D8A2EE88FE5B282E244BA127039A1 - - baseConfigurationReference - EECEF8CBAF61CF0C2988F5A14BF41D8C - buildSettings - - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - CURRENT_PROJECT_VERSION - 1 - DEBUG_INFORMATION_FORMAT - dwarf-with-dsym - DEFINES_MODULE - YES - DYLIB_COMPATIBILITY_VERSION - 1 - DYLIB_CURRENT_VERSION - 1 - DYLIB_INSTALL_NAME_BASE - @rpath - ENABLE_STRICT_OBJC_MSGSEND - YES - GCC_NO_COMMON_BLOCKS - YES - GCC_PREFIX_HEADER - Target Support Files/ConsistencyManager/ConsistencyManager-prefix.pch - INFOPLIST_FILE - Target Support Files/ConsistencyManager/Info.plist - INSTALL_PATH - $(LOCAL_LIBRARY_DIR)/Frameworks - IPHONEOS_DEPLOYMENT_TARGET - 8.0 - LD_RUNPATH_SEARCH_PATHS - - $(inherited) - @executable_path/Frameworks - @loader_path/Frameworks - - MODULEMAP_FILE - Target Support Files/ConsistencyManager/ConsistencyManager.modulemap - MTL_ENABLE_DEBUG_INFO - NO - PRODUCT_NAME - ConsistencyManager - SDKROOT - iphoneos - SKIP_INSTALL - YES - SWIFT_VERSION - 3.0 - TARGETED_DEVICE_FAMILY - 1,2 - VERSIONING_SYSTEM - apple-generic - VERSION_INFO_PREFIX - - - isa - XCBuildConfiguration - name - Release - - 578A87766815CCE33587B12BFA2836EB - - children - - 95FABE5E5C82E452542740630E035242 - EFAE0ADEFDD92C479B85F07AAA90E5C8 - 6C7214876AADE303DB5DBC63DBD7159C - - isa - PBXGroup - name - Products - sourceTree - <group> - - 57D765DDF0C4FF958D062CD0F903ECDC - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - ConsistencyManager-dummy.m - sourceTree - <group> - - 57E68D3081A8392BC8A463B0622FEDDB - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - Info.plist - sourceTree - <group> - - 5BEE203327B0FC1C958E966EA41A0515 - - isa - PBXTargetDependency - name - ConsistencyManager - target - BF143FCB0BDDCCE19A427004B80418A1 - targetProxy - 7013622491A77F8DFA5BA8EFE366E3BD - - 67C6C6DAAA281DD86B4713C67A6069D2 - - fileRef - 440C37B569E235BC92C785E3793973D6 - isa - PBXBuildFile - settings - - ATTRIBUTES - - Public - - - - 6892BE106BBA2F1EF5018BFF3401C7F4 - - includeInIndex - 1 - isa - PBXFileReference - path - Pods-ConsistencyManagerDemo.modulemap - sourceTree - <group> - - 6C7214876AADE303DB5DBC63DBD7159C - - explicitFileType - wrapper.framework - includeInIndex - 0 - isa - PBXFileReference - name - Pods_ConsistencyManagerDemoTests.framework - path - Pods-ConsistencyManagerDemoTests.framework - sourceTree - BUILT_PRODUCTS_DIR - - 7013622491A77F8DFA5BA8EFE366E3BD - - containerPortal - D41D8CD98F00B204E9800998ECF8427E - isa - PBXContainerItemProxy - proxyType - 1 - remoteGlobalIDString - BF143FCB0BDDCCE19A427004B80418A1 - remoteInfo - ConsistencyManager - - 70C22A7A298EE0C8B13EF4E9BB903EB5 - - children - - 07FEC02D0D67674AC7D95ADE2CF3FBCA - EECEF8CBAF61CF0C2988F5A14BF41D8C - 57D765DDF0C4FF958D062CD0F903ECDC - 188C8EECBB0DEC67D0093A93F3C75B53 - 73E7C4AA7831B8534275EFD894D577F0 - 57E68D3081A8392BC8A463B0622FEDDB - - isa - PBXGroup - name - Support Files - path - SampleApp/Pods/Target Support Files/ConsistencyManager - sourceTree - <group> - - 71FE6F99FC4C88A67E2B36488EA85B45 - - baseConfigurationReference - E173DD931B17B0F5230EE1F25C3D464C - buildSettings - - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - CURRENT_PROJECT_VERSION - 1 - DEBUG_INFORMATION_FORMAT - dwarf-with-dsym - DEFINES_MODULE - YES - DYLIB_COMPATIBILITY_VERSION - 1 - DYLIB_CURRENT_VERSION - 1 - DYLIB_INSTALL_NAME_BASE - @rpath - ENABLE_STRICT_OBJC_MSGSEND - YES - GCC_NO_COMMON_BLOCKS - YES - INFOPLIST_FILE - Target Support Files/Pods-ConsistencyManagerDemoTests/Info.plist - INSTALL_PATH - $(LOCAL_LIBRARY_DIR)/Frameworks - IPHONEOS_DEPLOYMENT_TARGET - 9.2 - LD_RUNPATH_SEARCH_PATHS - - $(inherited) - @executable_path/Frameworks - @loader_path/Frameworks - - MACH_O_TYPE - staticlib - MODULEMAP_FILE - Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests.modulemap - MTL_ENABLE_DEBUG_INFO - NO - OTHER_LDFLAGS - - OTHER_LIBTOOLFLAGS - - PODS_ROOT - $(SRCROOT) - PRODUCT_BUNDLE_IDENTIFIER - org.cocoapods.${PRODUCT_NAME:rfc1034identifier} - PRODUCT_NAME - Pods_ConsistencyManagerDemoTests - SDKROOT - iphoneos - SKIP_INSTALL - YES - SWIFT_VERSION - 3.0 - TARGETED_DEVICE_FAMILY - 1,2 - VERSIONING_SYSTEM - apple-generic - VERSION_INFO_PREFIX - - - isa - XCBuildConfiguration - name - Release - - 73E7C4AA7831B8534275EFD894D577F0 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - ConsistencyManager-umbrella.h - sourceTree - <group> - - 7BEAE74FF1D8A510ABD12932094B4065 - - fileRef - C470B1C9FD5BBF72E685ACD69A4E5883 - isa - PBXBuildFile - - 7C852A5060BDF1BA2232CBB05171E2FA - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.script.sh - path - Pods-ConsistencyManagerDemoTests-resources.sh - sourceTree - <group> - - 7DB346D0F39D3F0E887471402A8071AB - - children - - 93A4A3777CF96A4AAC1D13BA6DCCEA73 - A23F02848403E61DB9A23F6BF9A56D3D - 433CD3331B6C3787F473C941B61FC68F - 578A87766815CCE33587B12BFA2836EB - C5DC5848CE0FCAD092F49081196F8EF1 - - isa - PBXGroup - sourceTree - <group> - - 8092A6930A3A7578C6CB9AD8DBE406B2 - - fileRef - D89E218F2C97C64475047ECC0FACFD4B - isa - PBXBuildFile - - 8265AE9D9D400DF1E9B06A3955F85942 - - fileRef - E86668F20F252C440D1015B816BE59C5 - isa - PBXBuildFile - - 84FD87D359382A37B07149A12641B965 - - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - CLANG_ANALYZER_NONNULL - YES - CLANG_CXX_LANGUAGE_STANDARD - gnu++0x - CLANG_CXX_LIBRARY - libc++ - CLANG_ENABLE_MODULES - YES - CLANG_ENABLE_OBJC_ARC - YES - CLANG_WARN_BOOL_CONVERSION - YES - CLANG_WARN_CONSTANT_CONVERSION - YES - CLANG_WARN_DIRECT_OBJC_ISA_USAGE - YES - CLANG_WARN_EMPTY_BODY - YES - CLANG_WARN_ENUM_CONVERSION - YES - CLANG_WARN_INT_CONVERSION - YES - CLANG_WARN_OBJC_ROOT_CLASS - YES - CLANG_WARN_UNREACHABLE_CODE - YES - CLANG_WARN__DUPLICATE_METHOD_MATCH - YES - COPY_PHASE_STRIP - NO - ENABLE_TESTABILITY - YES - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_DYNAMIC_NO_PIC - NO - GCC_OPTIMIZATION_LEVEL - 0 - GCC_PREPROCESSOR_DEFINITIONS - - POD_CONFIGURATION_DEBUG=1 - DEBUG=1 - $(inherited) - - GCC_SYMBOLS_PRIVATE_EXTERN - NO - GCC_WARN_64_TO_32_BIT_CONVERSION - YES - GCC_WARN_ABOUT_RETURN_TYPE - YES - GCC_WARN_UNDECLARED_SELECTOR - YES - GCC_WARN_UNINITIALIZED_AUTOS - YES - GCC_WARN_UNUSED_FUNCTION - YES - GCC_WARN_UNUSED_VARIABLE - YES - IPHONEOS_DEPLOYMENT_TARGET - 9.2 - ONLY_ACTIVE_ARCH - YES - STRIP_INSTALLED_PRODUCT - NO - SYMROOT - ${SRCROOT}/../build - - isa - XCBuildConfiguration - name - Debug - - 85C693DEC8FEE4B7D75A35E8C4E2235B - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - Info.plist - sourceTree - <group> - - 8A22E529FEE93CA2A529819424385060 - - children - - C4129D156D77AFF80AD298D10E118E7E - 3C6A32DCBC7F8D779F02A8379CEEE5E7 - 0BDC9F4AFD6145795A4651F5CADC8C63 - D152D8D76588A6901C02B7CAEEDD89BB - D89E218F2C97C64475047ECC0FACFD4B - 90566CB410ECED574E5595F473A7E0CB - 7C852A5060BDF1BA2232CBB05171E2FA - E3FCAF141FEA5F29977F73000877DC91 - 4886136AA75D4BD3F3EA7F7737666C3F - E173DD931B17B0F5230EE1F25C3D464C - - isa - PBXGroup - name - Pods-ConsistencyManagerDemoTests - path - Target Support Files/Pods-ConsistencyManagerDemoTests - sourceTree - <group> - - 8CB93A423F38BCC201D2C88FE103CDA2 - - buildActionMask - 2147483647 - files - - 9EE61BA958034E978A1CD8CA267DFBB1 - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - 8F08CB6DE1EA371C07F5DAA84698F5DF - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - WeakListenerArray.swift - sourceTree - <group> - - 90566CB410ECED574E5595F473A7E0CB - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.script.sh - path - Pods-ConsistencyManagerDemoTests-frameworks.sh - sourceTree - <group> - - 93A4A3777CF96A4AAC1D13BA6DCCEA73 - - explicitFileType - text.script.ruby - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text - name - Podfile - path - ../Podfile - sourceTree - SOURCE_ROOT - xcLanguageSpecificationIdentifier - xcode.lang.ruby - - 946F6A686048EA441C57692609C7D832 - - fileRef - FF0FBA5BD8F2F85C07354AF72EEB1007 - isa - PBXBuildFile - - 94C1E1EC610117D3962969B1A36C7561 - - buildConfigurations - - 4C2CBFF18062281E97D2F0406A841265 - 71FE6F99FC4C88A67E2B36488EA85B45 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - 95FABE5E5C82E452542740630E035242 - - explicitFileType - wrapper.framework - includeInIndex - 0 - isa - PBXFileReference - name - ConsistencyManager.framework - path - ConsistencyManager.framework - sourceTree - BUILT_PRODUCTS_DIR - - 98012ABE0EB56B1CCE7CD83BB1182914 - - fileRef - 0144C760EF25E554776ED5ECCA43CCEE - isa - PBXBuildFile - - 9A2336708DF8B35DC983A27C75A4A5E9 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - ConsistencyManagerListener.swift - sourceTree - <group> - - 9CF5B934F1E4C8ABAA4BEDE6D492F53B - - fileRef - 57D765DDF0C4FF958D062CD0F903ECDC - isa - PBXBuildFile - - 9EE61BA958034E978A1CD8CA267DFBB1 - - fileRef - A2A6FF208CEC4C2861F1E9D42D651453 - isa - PBXBuildFile - - 9F5AEBB2084E771B548021CC26158A1E - - fileRef - A5921CB899F5D5BC643B0FC6006ABC4A - isa - PBXBuildFile - - A23F02848403E61DB9A23F6BF9A56D3D - - children - - FA178EC95EFB5649C8D68DD92B755192 - - isa - PBXGroup - name - Development Pods - sourceTree - <group> - - A2A6FF208CEC4C2861F1E9D42D651453 - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - Foundation.framework - path - Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework - sourceTree - DEVELOPER_DIR - - A2D2668B90A28F55295528C78478942D - - baseConfigurationReference - AB96173C489A506D219E0CAD5CFCF72F - buildSettings - - CODE_SIGN_IDENTITY[sdk=iphoneos*] - iPhone Developer - CURRENT_PROJECT_VERSION - 1 - DEBUG_INFORMATION_FORMAT - dwarf-with-dsym - DEFINES_MODULE - YES - DYLIB_COMPATIBILITY_VERSION - 1 - DYLIB_CURRENT_VERSION - 1 - DYLIB_INSTALL_NAME_BASE - @rpath - ENABLE_STRICT_OBJC_MSGSEND - YES - GCC_NO_COMMON_BLOCKS - YES - INFOPLIST_FILE - Target Support Files/Pods-ConsistencyManagerDemo/Info.plist - INSTALL_PATH - $(LOCAL_LIBRARY_DIR)/Frameworks - IPHONEOS_DEPLOYMENT_TARGET - 9.2 - LD_RUNPATH_SEARCH_PATHS - - $(inherited) - @executable_path/Frameworks - @loader_path/Frameworks - - MACH_O_TYPE - staticlib - MODULEMAP_FILE - Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo.modulemap - MTL_ENABLE_DEBUG_INFO - NO - OTHER_LDFLAGS - - OTHER_LIBTOOLFLAGS - - PODS_ROOT - $(SRCROOT) - PRODUCT_BUNDLE_IDENTIFIER - org.cocoapods.${PRODUCT_NAME:rfc1034identifier} - PRODUCT_NAME - Pods_ConsistencyManagerDemo - SDKROOT - iphoneos - SKIP_INSTALL - YES - SWIFT_VERSION - 3.0 - TARGETED_DEVICE_FAMILY - 1,2 - VERSIONING_SYSTEM - apple-generic - VERSION_INFO_PREFIX - - - isa - XCBuildConfiguration - name - Release - - A5921CB899F5D5BC643B0FC6006ABC4A - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - Pods-ConsistencyManagerDemo-dummy.m - sourceTree - <group> - - AB906E0AE5F98FC805E1F448FC7543FA - - children - - 85C693DEC8FEE4B7D75A35E8C4E2235B - 6892BE106BBA2F1EF5018BFF3401C7F4 - CC242C43169BAD1A0D861518AE632709 - 20C77C2EE983F9889A838B60184CA122 - A5921CB899F5D5BC643B0FC6006ABC4A - ED07B2160440E1B489A2F18D1180FAB7 - E35D0045037C31ACFD232FF8789ED67E - 440C37B569E235BC92C785E3793973D6 - CB5425EA16CD7E7219B3B20B6A7891BE - AB96173C489A506D219E0CAD5CFCF72F - - isa - PBXGroup - name - Pods-ConsistencyManagerDemo - path - Target Support Files/Pods-ConsistencyManagerDemo - sourceTree - <group> - - AB96173C489A506D219E0CAD5CFCF72F - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - Pods-ConsistencyManagerDemo.release.xcconfig - sourceTree - <group> - - ABFCB533DAAA09ADE1BD0A9F1132C199 - - fileRef - 9A2336708DF8B35DC983A27C75A4A5E9 - isa - PBXBuildFile - - AFC63DDDFD77CBEE2B5BF01101035E95 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - ErrorManager.swift - sourceTree - <group> - - B0C887B85A28718400C4FE39E3BFC640 - - buildActionMask - 2147483647 - files - - 9F5AEBB2084E771B548021CC26158A1E - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - B459A5D4048DD01BA939BB3FD857D8A4 - - buildActionMask - 2147483647 - files - - 2A51D87889023F52D63559B9624B15D6 - 8265AE9D9D400DF1E9B06A3955F85942 - - isa - PBXFrameworksBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - BCB5A2783D9A42AF3EFA9CBFC410483B - - buildConfigurationList - FEFD42CA6E51E5D6757BDBCDF4E3D570 - buildPhases - - B0C887B85A28718400C4FE39E3BFC640 - 5332D560A2036BAAED9FCC5603C41CAD - 1ACD512C51176E464B79D551AB61119C - - buildRules - - dependencies - - D31C9CDBA02A78CD909475D8E4EBD0FD - - isa - PBXNativeTarget - name - Pods-ConsistencyManagerDemo - productName - Pods-ConsistencyManagerDemo - productReference - EFAE0ADEFDD92C479B85F07AAA90E5C8 - productType - com.apple.product-type.framework - - BF143FCB0BDDCCE19A427004B80418A1 - - buildConfigurationList - D4860273489427FA3BC8FD45AEB05BD3 - buildPhases - - 119F3BF3CCA32D4BB089FF917ECD5C13 - B459A5D4048DD01BA939BB3FD857D8A4 - CC52059BEC70B517452CDFA876D48AD0 - - buildRules - - dependencies - - isa - PBXNativeTarget - name - ConsistencyManager - productName - ConsistencyManager - productReference - 95FABE5E5C82E452542740630E035242 - productType - com.apple.product-type.framework - - C4129D156D77AFF80AD298D10E118E7E - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - Info.plist - sourceTree - <group> - - C470B1C9FD5BBF72E685ACD69A4E5883 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - ConsistencyManager.swift - sourceTree - <group> - - C5DC5848CE0FCAD092F49081196F8EF1 - - children - - AB906E0AE5F98FC805E1F448FC7543FA - 8A22E529FEE93CA2A529819424385060 - - isa - PBXGroup - name - Targets Support Files - sourceTree - <group> - - CA7256006DA0588B8ED3D7F4508E78A5 - - fileRef - E3FCAF141FEA5F29977F73000877DC91 - isa - PBXBuildFile - settings - - ATTRIBUTES - - Public - - - - CB5425EA16CD7E7219B3B20B6A7891BE - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - Pods-ConsistencyManagerDemo.debug.xcconfig - sourceTree - <group> - - CC242C43169BAD1A0D861518AE632709 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text - path - Pods-ConsistencyManagerDemo-acknowledgements.markdown - sourceTree - <group> - - CC52059BEC70B517452CDFA876D48AD0 - - buildActionMask - 2147483647 - files - - 4B2BE5EF5BCC75C085AF6FB3DFB73BF7 - - isa - PBXHeadersBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - CCD1B4DA266FD079ED226B54CBA44B2A - - fileRef - 4B53017F66A898670D4B0CFE72E80809 - isa - PBXBuildFile - - D152D8D76588A6901C02B7CAEEDD89BB - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.plist.xml - path - Pods-ConsistencyManagerDemoTests-acknowledgements.plist - sourceTree - <group> - - D31C9CDBA02A78CD909475D8E4EBD0FD - - isa - PBXTargetDependency - name - ConsistencyManager - target - BF143FCB0BDDCCE19A427004B80418A1 - targetProxy - E4E5365944BCF8FF9103AF9C91C3BE69 - - D41D8CD98F00B204E9800998ECF8427E - - attributes - - LastSwiftUpdateCheck - 0730 - LastUpgradeCheck - 0700 - - buildConfigurationList - 2D8E8EC45A3A1A1D94AE762CB5028504 - compatibilityVersion - Xcode 3.2 - developmentRegion - English - hasScannedForEncodings - 0 - isa - PBXProject - knownRegions - - en - - mainGroup - 7DB346D0F39D3F0E887471402A8071AB - productRefGroup - 578A87766815CCE33587B12BFA2836EB - projectDirPath - - projectReferences - - projectRoot - - targets - - BF143FCB0BDDCCE19A427004B80418A1 - BCB5A2783D9A42AF3EFA9CBFC410483B - FE788E61EAC5C03897FF0A17846577D1 - - - D4860273489427FA3BC8FD45AEB05BD3 - - buildConfigurations - - 087C0E07E694E836BA805FE795DB2A3E - 545D8A2EE88FE5B282E244BA127039A1 - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - D48F23C83E39059CF5B9E92F34C87803 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - ConsistencyManagerModel.swift - sourceTree - <group> - - D7482DDF39898860D355ED68968745B3 - - buildActionMask - 2147483647 - files - - 8092A6930A3A7578C6CB9AD8DBE406B2 - - isa - PBXSourcesBuildPhase - runOnlyForDeploymentPostprocessing - 0 - - D77D2196E19893A32580FDD0485B4C52 - - fileRef - 2084825E98E719B864802ADC493E7901 - isa - PBXBuildFile - - D89E218F2C97C64475047ECC0FACFD4B - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.objc - path - Pods-ConsistencyManagerDemoTests-dummy.m - sourceTree - <group> - - E173DD931B17B0F5230EE1F25C3D464C - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - Pods-ConsistencyManagerDemoTests.release.xcconfig - sourceTree - <group> - - E35D0045037C31ACFD232FF8789ED67E - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.script.sh - path - Pods-ConsistencyManagerDemo-resources.sh - sourceTree - <group> - - E3FCAF141FEA5F29977F73000877DC91 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.c.h - path - Pods-ConsistencyManagerDemoTests-umbrella.h - sourceTree - <group> - - E4E5365944BCF8FF9103AF9C91C3BE69 - - containerPortal - D41D8CD98F00B204E9800998ECF8427E - isa - PBXContainerItemProxy - proxyType - 1 - remoteGlobalIDString - BF143FCB0BDDCCE19A427004B80418A1 - remoteInfo - ConsistencyManager - - E86668F20F252C440D1015B816BE59C5 - - isa - PBXFileReference - lastKnownFileType - wrapper.framework - name - UIKit.framework - path - Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/UIKit.framework - sourceTree - DEVELOPER_DIR - - ECEED617A5BCA13DEBC088D96919A256 - - fileRef - 3FB257E3E3B3C4F54E44A4E33BAD8CB2 - isa - PBXBuildFile - - ED07B2160440E1B489A2F18D1180FAB7 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.script.sh - path - Pods-ConsistencyManagerDemo-frameworks.sh - sourceTree - <group> - - EE235C93D5DBAC5F8B866D42CD698BB2 - - fileRef - AFC63DDDFD77CBEE2B5BF01101035E95 - isa - PBXBuildFile - - EECEF8CBAF61CF0C2988F5A14BF41D8C - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - text.xcconfig - path - ConsistencyManager.xcconfig - sourceTree - <group> - - EFAE0ADEFDD92C479B85F07AAA90E5C8 - - explicitFileType - wrapper.framework - includeInIndex - 0 - isa - PBXFileReference - name - Pods_ConsistencyManagerDemo.framework - path - Pods-ConsistencyManagerDemo.framework - sourceTree - BUILT_PRODUCTS_DIR - - F302CD3B306AF1ED96B9AF31FCDBC26C - - children - - A2A6FF208CEC4C2861F1E9D42D651453 - E86668F20F252C440D1015B816BE59C5 - - isa - PBXGroup - name - iOS - sourceTree - <group> - - F48AFC9B00256A326D88241F8A2B0D0E - - fileRef - 8F08CB6DE1EA371C07F5DAA84698F5DF - isa - PBXBuildFile - - F594C655D48020EC34B00AA63E001773 - - buildSettings - - ALWAYS_SEARCH_USER_PATHS - NO - CLANG_ANALYZER_NONNULL - YES - CLANG_CXX_LANGUAGE_STANDARD - gnu++0x - CLANG_CXX_LIBRARY - libc++ - CLANG_ENABLE_MODULES - YES - CLANG_ENABLE_OBJC_ARC - YES - CLANG_WARN_BOOL_CONVERSION - YES - CLANG_WARN_CONSTANT_CONVERSION - YES - CLANG_WARN_DIRECT_OBJC_ISA_USAGE - YES - CLANG_WARN_EMPTY_BODY - YES - CLANG_WARN_ENUM_CONVERSION - YES - CLANG_WARN_INT_CONVERSION - YES - CLANG_WARN_OBJC_ROOT_CLASS - YES - CLANG_WARN_UNREACHABLE_CODE - YES - CLANG_WARN__DUPLICATE_METHOD_MATCH - YES - COPY_PHASE_STRIP - YES - ENABLE_NS_ASSERTIONS - NO - GCC_C_LANGUAGE_STANDARD - gnu99 - GCC_PREPROCESSOR_DEFINITIONS - - POD_CONFIGURATION_RELEASE=1 - $(inherited) - - GCC_WARN_64_TO_32_BIT_CONVERSION - YES - GCC_WARN_ABOUT_RETURN_TYPE - YES - GCC_WARN_UNDECLARED_SELECTOR - YES - GCC_WARN_UNINITIALIZED_AUTOS - YES - GCC_WARN_UNUSED_FUNCTION - YES - GCC_WARN_UNUSED_VARIABLE - YES - IPHONEOS_DEPLOYMENT_TARGET - 9.2 - STRIP_INSTALLED_PRODUCT - NO - SYMROOT - ${SRCROOT}/../build - VALIDATE_PRODUCT - YES - - isa - XCBuildConfiguration - name - Release - - FA178EC95EFB5649C8D68DD92B755192 - - children - - 15F0D3553BEFF8755161731FFA057803 - 70C22A7A298EE0C8B13EF4E9BB903EB5 - - isa - PBXGroup - name - ConsistencyManager - path - ../.. - sourceTree - <group> - - FE788E61EAC5C03897FF0A17846577D1 - - buildConfigurationList - 94C1E1EC610117D3962969B1A36C7561 - buildPhases - - D7482DDF39898860D355ED68968745B3 - 8CB93A423F38BCC201D2C88FE103CDA2 - 1771499526FC1CF6F6134BBC1520E80D - - buildRules - - dependencies - - 5BEE203327B0FC1C958E966EA41A0515 - - isa - PBXNativeTarget - name - Pods-ConsistencyManagerDemoTests - productName - Pods-ConsistencyManagerDemoTests - productReference - 6C7214876AADE303DB5DBC63DBD7159C - productType - com.apple.product-type.framework - - FEFD42CA6E51E5D6757BDBCDF4E3D570 - - buildConfigurations - - 2FE8C909FCB396033C7CCA0FE952815C - A2D2668B90A28F55295528C78478942D - - defaultConfigurationIsVisible - 0 - defaultConfigurationName - Release - isa - XCConfigurationList - - FF0FBA5BD8F2F85C07354AF72EEB1007 - - includeInIndex - 1 - isa - PBXFileReference - lastKnownFileType - sourcecode.swift - path - BatchListener.swift - sourceTree - <group> - - - rootObject - D41D8CD98F00B204E9800998ECF8427E - - +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 2A51D87889023F52D63559B9624B15D6 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2A6FF208CEC4C2861F1E9D42D651453 /* Foundation.framework */; }; + 2B4766559F7FACFEE5CDB0AB152BFA82 /* ConsistencyManagerModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D48F23C83E39059CF5B9E92F34C87803 /* ConsistencyManagerModel.swift */; }; + 4634C767EBD6E76069B986A6CB10504D /* CollectionHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43A29A7D5E1E11EF858BCE11E48846AD /* CollectionHelpers.swift */; }; + 4B2BE5EF5BCC75C085AF6FB3DFB73BF7 /* ConsistencyManager-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 73E7C4AA7831B8534275EFD894D577F0 /* ConsistencyManager-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 51089D14D31E1F11878DACC24F040CCF /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2A6FF208CEC4C2861F1E9D42D651453 /* Foundation.framework */; }; + 67C6C6DAAA281DD86B4713C67A6069D2 /* Pods-ConsistencyManagerDemo-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 440C37B569E235BC92C785E3793973D6 /* Pods-ConsistencyManagerDemo-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7BEAE74FF1D8A510ABD12932094B4065 /* ConsistencyManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C470B1C9FD5BBF72E685ACD69A4E5883 /* ConsistencyManager.swift */; }; + 8092A6930A3A7578C6CB9AD8DBE406B2 /* Pods-ConsistencyManagerDemoTests-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = D89E218F2C97C64475047ECC0FACFD4B /* Pods-ConsistencyManagerDemoTests-dummy.m */; }; + 8265AE9D9D400DF1E9B06A3955F85942 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E86668F20F252C440D1015B816BE59C5 /* UIKit.framework */; }; + 946F6A686048EA441C57692609C7D832 /* BatchListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF0FBA5BD8F2F85C07354AF72EEB1007 /* BatchListener.swift */; }; + 98012ABE0EB56B1CCE7CD83BB1182914 /* WeakArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0144C760EF25E554776ED5ECCA43CCEE /* WeakArray.swift */; }; + 9CF5B934F1E4C8ABAA4BEDE6D492F53B /* ConsistencyManager-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 57D765DDF0C4FF958D062CD0F903ECDC /* ConsistencyManager-dummy.m */; }; + 9EE61BA958034E978A1CD8CA267DFBB1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A2A6FF208CEC4C2861F1E9D42D651453 /* Foundation.framework */; }; + 9F5AEBB2084E771B548021CC26158A1E /* Pods-ConsistencyManagerDemo-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = A5921CB899F5D5BC643B0FC6006ABC4A /* Pods-ConsistencyManagerDemo-dummy.m */; }; + ABFCB533DAAA09ADE1BD0A9F1132C199 /* ConsistencyManagerListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A2336708DF8B35DC983A27C75A4A5E9 /* ConsistencyManagerListener.swift */; }; + CA7256006DA0588B8ED3D7F4508E78A5 /* Pods-ConsistencyManagerDemoTests-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = E3FCAF141FEA5F29977F73000877DC91 /* Pods-ConsistencyManagerDemoTests-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CCD1B4DA266FD079ED226B54CBA44B2A /* ConsistencyManagerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B53017F66A898670D4B0CFE72E80809 /* ConsistencyManagerDelegate.swift */; }; + D77D2196E19893A32580FDD0485B4C52 /* ModelUpdates.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2084825E98E719B864802ADC493E7901 /* ModelUpdates.swift */; }; + ECEED617A5BCA13DEBC088D96919A256 /* BatchUpdateModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3FB257E3E3B3C4F54E44A4E33BAD8CB2 /* BatchUpdateModel.swift */; }; + EE235C93D5DBAC5F8B866D42CD698BB2 /* ErrorManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = AFC63DDDFD77CBEE2B5BF01101035E95 /* ErrorManager.swift */; }; + F48AFC9B00256A326D88241F8A2B0D0E /* WeakListenerArray.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F08CB6DE1EA371C07F5DAA84698F5DF /* WeakListenerArray.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 7013622491A77F8DFA5BA8EFE366E3BD /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = BF143FCB0BDDCCE19A427004B80418A1; + remoteInfo = ConsistencyManager; + }; + E4E5365944BCF8FF9103AF9C91C3BE69 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; + proxyType = 1; + remoteGlobalIDString = BF143FCB0BDDCCE19A427004B80418A1; + remoteInfo = ConsistencyManager; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + 0144C760EF25E554776ED5ECCA43CCEE /* WeakArray.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = WeakArray.swift; sourceTree = ""; }; + 07FEC02D0D67674AC7D95ADE2CF3FBCA /* ConsistencyManager.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = ConsistencyManager.modulemap; sourceTree = ""; }; + 0BDC9F4AFD6145795A4651F5CADC8C63 /* Pods-ConsistencyManagerDemoTests-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ConsistencyManagerDemoTests-acknowledgements.markdown"; sourceTree = ""; }; + 188C8EECBB0DEC67D0093A93F3C75B53 /* ConsistencyManager-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ConsistencyManager-prefix.pch"; sourceTree = ""; }; + 2084825E98E719B864802ADC493E7901 /* ModelUpdates.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ModelUpdates.swift; sourceTree = ""; }; + 20C77C2EE983F9889A838B60184CA122 /* Pods-ConsistencyManagerDemo-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ConsistencyManagerDemo-acknowledgements.plist"; sourceTree = ""; }; + 3C6A32DCBC7F8D779F02A8379CEEE5E7 /* Pods-ConsistencyManagerDemoTests.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-ConsistencyManagerDemoTests.modulemap"; sourceTree = ""; }; + 3FB257E3E3B3C4F54E44A4E33BAD8CB2 /* BatchUpdateModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BatchUpdateModel.swift; sourceTree = ""; }; + 43A29A7D5E1E11EF858BCE11E48846AD /* CollectionHelpers.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CollectionHelpers.swift; sourceTree = ""; }; + 440C37B569E235BC92C785E3793973D6 /* Pods-ConsistencyManagerDemo-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ConsistencyManagerDemo-umbrella.h"; sourceTree = ""; }; + 4886136AA75D4BD3F3EA7F7737666C3F /* Pods-ConsistencyManagerDemoTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ConsistencyManagerDemoTests.debug.xcconfig"; sourceTree = ""; }; + 4B53017F66A898670D4B0CFE72E80809 /* ConsistencyManagerDelegate.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConsistencyManagerDelegate.swift; sourceTree = ""; }; + 57D765DDF0C4FF958D062CD0F903ECDC /* ConsistencyManager-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ConsistencyManager-dummy.m"; sourceTree = ""; }; + 57E68D3081A8392BC8A463B0622FEDDB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 6892BE106BBA2F1EF5018BFF3401C7F4 /* Pods-ConsistencyManagerDemo.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-ConsistencyManagerDemo.modulemap"; sourceTree = ""; }; + 6C7214876AADE303DB5DBC63DBD7159C /* Pods_ConsistencyManagerDemoTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ConsistencyManagerDemoTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 73E7C4AA7831B8534275EFD894D577F0 /* ConsistencyManager-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ConsistencyManager-umbrella.h"; sourceTree = ""; }; + 7C852A5060BDF1BA2232CBB05171E2FA /* Pods-ConsistencyManagerDemoTests-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ConsistencyManagerDemoTests-resources.sh"; sourceTree = ""; }; + 85C693DEC8FEE4B7D75A35E8C4E2235B /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 8F08CB6DE1EA371C07F5DAA84698F5DF /* WeakListenerArray.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = WeakListenerArray.swift; sourceTree = ""; }; + 90566CB410ECED574E5595F473A7E0CB /* Pods-ConsistencyManagerDemoTests-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ConsistencyManagerDemoTests-frameworks.sh"; sourceTree = ""; }; + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 95FABE5E5C82E452542740630E035242 /* ConsistencyManager.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ConsistencyManager.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 9A2336708DF8B35DC983A27C75A4A5E9 /* ConsistencyManagerListener.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConsistencyManagerListener.swift; sourceTree = ""; }; + A2A6FF208CEC4C2861F1E9D42D651453 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + A5921CB899F5D5BC643B0FC6006ABC4A /* Pods-ConsistencyManagerDemo-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ConsistencyManagerDemo-dummy.m"; sourceTree = ""; }; + AB96173C489A506D219E0CAD5CFCF72F /* Pods-ConsistencyManagerDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ConsistencyManagerDemo.release.xcconfig"; sourceTree = ""; }; + AFC63DDDFD77CBEE2B5BF01101035E95 /* ErrorManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ErrorManager.swift; sourceTree = ""; }; + C4129D156D77AFF80AD298D10E118E7E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C470B1C9FD5BBF72E685ACD69A4E5883 /* ConsistencyManager.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConsistencyManager.swift; sourceTree = ""; }; + CB5425EA16CD7E7219B3B20B6A7891BE /* Pods-ConsistencyManagerDemo.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ConsistencyManagerDemo.debug.xcconfig"; sourceTree = ""; }; + CC242C43169BAD1A0D861518AE632709 /* Pods-ConsistencyManagerDemo-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ConsistencyManagerDemo-acknowledgements.markdown"; sourceTree = ""; }; + D152D8D76588A6901C02B7CAEEDD89BB /* Pods-ConsistencyManagerDemoTests-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ConsistencyManagerDemoTests-acknowledgements.plist"; sourceTree = ""; }; + D48F23C83E39059CF5B9E92F34C87803 /* ConsistencyManagerModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ConsistencyManagerModel.swift; sourceTree = ""; }; + D89E218F2C97C64475047ECC0FACFD4B /* Pods-ConsistencyManagerDemoTests-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ConsistencyManagerDemoTests-dummy.m"; sourceTree = ""; }; + E173DD931B17B0F5230EE1F25C3D464C /* Pods-ConsistencyManagerDemoTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ConsistencyManagerDemoTests.release.xcconfig"; sourceTree = ""; }; + E35D0045037C31ACFD232FF8789ED67E /* Pods-ConsistencyManagerDemo-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ConsistencyManagerDemo-resources.sh"; sourceTree = ""; }; + E3FCAF141FEA5F29977F73000877DC91 /* Pods-ConsistencyManagerDemoTests-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ConsistencyManagerDemoTests-umbrella.h"; sourceTree = ""; }; + E86668F20F252C440D1015B816BE59C5 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; }; + ED07B2160440E1B489A2F18D1180FAB7 /* Pods-ConsistencyManagerDemo-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ConsistencyManagerDemo-frameworks.sh"; sourceTree = ""; }; + EECEF8CBAF61CF0C2988F5A14BF41D8C /* ConsistencyManager.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ConsistencyManager.xcconfig; sourceTree = ""; }; + EFAE0ADEFDD92C479B85F07AAA90E5C8 /* Pods_ConsistencyManagerDemo.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ConsistencyManagerDemo.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FF0FBA5BD8F2F85C07354AF72EEB1007 /* BatchListener.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BatchListener.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5332D560A2036BAAED9FCC5603C41CAD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 51089D14D31E1F11878DACC24F040CCF /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 8CB93A423F38BCC201D2C88FE103CDA2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9EE61BA958034E978A1CD8CA267DFBB1 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B459A5D4048DD01BA939BB3FD857D8A4 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 2A51D87889023F52D63559B9624B15D6 /* Foundation.framework in Frameworks */, + 8265AE9D9D400DF1E9B06A3955F85942 /* UIKit.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 15F0D3553BEFF8755161731FFA057803 /* ConsistencyManager */ = { + isa = PBXGroup; + children = ( + C470B1C9FD5BBF72E685ACD69A4E5883 /* ConsistencyManager.swift */, + 402434D7100D779B1A4EBE57F0534F7F /* DataStructures */, + 172080ADE83198DA3F334137874025AE /* Helpers */, + 1DB0F36E63222055AB8FB9A455CE3773 /* Protocols */, + ); + path = ConsistencyManager; + sourceTree = ""; + }; + 172080ADE83198DA3F334137874025AE /* Helpers */ = { + isa = PBXGroup; + children = ( + 43A29A7D5E1E11EF858BCE11E48846AD /* CollectionHelpers.swift */, + AFC63DDDFD77CBEE2B5BF01101035E95 /* ErrorManager.swift */, + ); + path = Helpers; + sourceTree = ""; + }; + 1DB0F36E63222055AB8FB9A455CE3773 /* Protocols */ = { + isa = PBXGroup; + children = ( + 4B53017F66A898670D4B0CFE72E80809 /* ConsistencyManagerDelegate.swift */, + 9A2336708DF8B35DC983A27C75A4A5E9 /* ConsistencyManagerListener.swift */, + D48F23C83E39059CF5B9E92F34C87803 /* ConsistencyManagerModel.swift */, + ); + path = Protocols; + sourceTree = ""; + }; + 402434D7100D779B1A4EBE57F0534F7F /* DataStructures */ = { + isa = PBXGroup; + children = ( + FF0FBA5BD8F2F85C07354AF72EEB1007 /* BatchListener.swift */, + 3FB257E3E3B3C4F54E44A4E33BAD8CB2 /* BatchUpdateModel.swift */, + 2084825E98E719B864802ADC493E7901 /* ModelUpdates.swift */, + 0144C760EF25E554776ED5ECCA43CCEE /* WeakArray.swift */, + 8F08CB6DE1EA371C07F5DAA84698F5DF /* WeakListenerArray.swift */, + ); + path = DataStructures; + sourceTree = ""; + }; + 433CD3331B6C3787F473C941B61FC68F /* Frameworks */ = { + isa = PBXGroup; + children = ( + F302CD3B306AF1ED96B9AF31FCDBC26C /* iOS */, + ); + name = Frameworks; + sourceTree = ""; + }; + 578A87766815CCE33587B12BFA2836EB /* Products */ = { + isa = PBXGroup; + children = ( + 95FABE5E5C82E452542740630E035242 /* ConsistencyManager.framework */, + EFAE0ADEFDD92C479B85F07AAA90E5C8 /* Pods_ConsistencyManagerDemo.framework */, + 6C7214876AADE303DB5DBC63DBD7159C /* Pods_ConsistencyManagerDemoTests.framework */, + ); + name = Products; + sourceTree = ""; + }; + 70C22A7A298EE0C8B13EF4E9BB903EB5 /* Support Files */ = { + isa = PBXGroup; + children = ( + 07FEC02D0D67674AC7D95ADE2CF3FBCA /* ConsistencyManager.modulemap */, + EECEF8CBAF61CF0C2988F5A14BF41D8C /* ConsistencyManager.xcconfig */, + 57D765DDF0C4FF958D062CD0F903ECDC /* ConsistencyManager-dummy.m */, + 188C8EECBB0DEC67D0093A93F3C75B53 /* ConsistencyManager-prefix.pch */, + 73E7C4AA7831B8534275EFD894D577F0 /* ConsistencyManager-umbrella.h */, + 57E68D3081A8392BC8A463B0622FEDDB /* Info.plist */, + ); + name = "Support Files"; + path = "SampleApp/Pods/Target Support Files/ConsistencyManager"; + sourceTree = ""; + }; + 7DB346D0F39D3F0E887471402A8071AB = { + isa = PBXGroup; + children = ( + 93A4A3777CF96A4AAC1D13BA6DCCEA73 /* Podfile */, + A23F02848403E61DB9A23F6BF9A56D3D /* Development Pods */, + 433CD3331B6C3787F473C941B61FC68F /* Frameworks */, + 578A87766815CCE33587B12BFA2836EB /* Products */, + C5DC5848CE0FCAD092F49081196F8EF1 /* Targets Support Files */, + ); + sourceTree = ""; + }; + 8A22E529FEE93CA2A529819424385060 /* Pods-ConsistencyManagerDemoTests */ = { + isa = PBXGroup; + children = ( + C4129D156D77AFF80AD298D10E118E7E /* Info.plist */, + 3C6A32DCBC7F8D779F02A8379CEEE5E7 /* Pods-ConsistencyManagerDemoTests.modulemap */, + 0BDC9F4AFD6145795A4651F5CADC8C63 /* Pods-ConsistencyManagerDemoTests-acknowledgements.markdown */, + D152D8D76588A6901C02B7CAEEDD89BB /* Pods-ConsistencyManagerDemoTests-acknowledgements.plist */, + D89E218F2C97C64475047ECC0FACFD4B /* Pods-ConsistencyManagerDemoTests-dummy.m */, + 90566CB410ECED574E5595F473A7E0CB /* Pods-ConsistencyManagerDemoTests-frameworks.sh */, + 7C852A5060BDF1BA2232CBB05171E2FA /* Pods-ConsistencyManagerDemoTests-resources.sh */, + E3FCAF141FEA5F29977F73000877DC91 /* Pods-ConsistencyManagerDemoTests-umbrella.h */, + 4886136AA75D4BD3F3EA7F7737666C3F /* Pods-ConsistencyManagerDemoTests.debug.xcconfig */, + E173DD931B17B0F5230EE1F25C3D464C /* Pods-ConsistencyManagerDemoTests.release.xcconfig */, + ); + name = "Pods-ConsistencyManagerDemoTests"; + path = "Target Support Files/Pods-ConsistencyManagerDemoTests"; + sourceTree = ""; + }; + A23F02848403E61DB9A23F6BF9A56D3D /* Development Pods */ = { + isa = PBXGroup; + children = ( + FA178EC95EFB5649C8D68DD92B755192 /* ConsistencyManager */, + ); + name = "Development Pods"; + sourceTree = ""; + }; + AB906E0AE5F98FC805E1F448FC7543FA /* Pods-ConsistencyManagerDemo */ = { + isa = PBXGroup; + children = ( + 85C693DEC8FEE4B7D75A35E8C4E2235B /* Info.plist */, + 6892BE106BBA2F1EF5018BFF3401C7F4 /* Pods-ConsistencyManagerDemo.modulemap */, + CC242C43169BAD1A0D861518AE632709 /* Pods-ConsistencyManagerDemo-acknowledgements.markdown */, + 20C77C2EE983F9889A838B60184CA122 /* Pods-ConsistencyManagerDemo-acknowledgements.plist */, + A5921CB899F5D5BC643B0FC6006ABC4A /* Pods-ConsistencyManagerDemo-dummy.m */, + ED07B2160440E1B489A2F18D1180FAB7 /* Pods-ConsistencyManagerDemo-frameworks.sh */, + E35D0045037C31ACFD232FF8789ED67E /* Pods-ConsistencyManagerDemo-resources.sh */, + 440C37B569E235BC92C785E3793973D6 /* Pods-ConsistencyManagerDemo-umbrella.h */, + CB5425EA16CD7E7219B3B20B6A7891BE /* Pods-ConsistencyManagerDemo.debug.xcconfig */, + AB96173C489A506D219E0CAD5CFCF72F /* Pods-ConsistencyManagerDemo.release.xcconfig */, + ); + name = "Pods-ConsistencyManagerDemo"; + path = "Target Support Files/Pods-ConsistencyManagerDemo"; + sourceTree = ""; + }; + C5DC5848CE0FCAD092F49081196F8EF1 /* Targets Support Files */ = { + isa = PBXGroup; + children = ( + AB906E0AE5F98FC805E1F448FC7543FA /* Pods-ConsistencyManagerDemo */, + 8A22E529FEE93CA2A529819424385060 /* Pods-ConsistencyManagerDemoTests */, + ); + name = "Targets Support Files"; + sourceTree = ""; + }; + F302CD3B306AF1ED96B9AF31FCDBC26C /* iOS */ = { + isa = PBXGroup; + children = ( + A2A6FF208CEC4C2861F1E9D42D651453 /* Foundation.framework */, + E86668F20F252C440D1015B816BE59C5 /* UIKit.framework */, + ); + name = iOS; + sourceTree = ""; + }; + FA178EC95EFB5649C8D68DD92B755192 /* ConsistencyManager */ = { + isa = PBXGroup; + children = ( + 15F0D3553BEFF8755161731FFA057803 /* ConsistencyManager */, + 70C22A7A298EE0C8B13EF4E9BB903EB5 /* Support Files */, + ); + name = ConsistencyManager; + path = ../..; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 1771499526FC1CF6F6134BBC1520E80D /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + CA7256006DA0588B8ED3D7F4508E78A5 /* Pods-ConsistencyManagerDemoTests-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 1ACD512C51176E464B79D551AB61119C /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 67C6C6DAAA281DD86B4713C67A6069D2 /* Pods-ConsistencyManagerDemo-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CC52059BEC70B517452CDFA876D48AD0 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 4B2BE5EF5BCC75C085AF6FB3DFB73BF7 /* ConsistencyManager-umbrella.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + BCB5A2783D9A42AF3EFA9CBFC410483B /* Pods-ConsistencyManagerDemo */ = { + isa = PBXNativeTarget; + buildConfigurationList = FEFD42CA6E51E5D6757BDBCDF4E3D570 /* Build configuration list for PBXNativeTarget "Pods-ConsistencyManagerDemo" */; + buildPhases = ( + B0C887B85A28718400C4FE39E3BFC640 /* Sources */, + 5332D560A2036BAAED9FCC5603C41CAD /* Frameworks */, + 1ACD512C51176E464B79D551AB61119C /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + D31C9CDBA02A78CD909475D8E4EBD0FD /* PBXTargetDependency */, + ); + name = "Pods-ConsistencyManagerDemo"; + productName = "Pods-ConsistencyManagerDemo"; + productReference = EFAE0ADEFDD92C479B85F07AAA90E5C8 /* Pods_ConsistencyManagerDemo.framework */; + productType = "com.apple.product-type.framework"; + }; + BF143FCB0BDDCCE19A427004B80418A1 /* ConsistencyManager */ = { + isa = PBXNativeTarget; + buildConfigurationList = D4860273489427FA3BC8FD45AEB05BD3 /* Build configuration list for PBXNativeTarget "ConsistencyManager" */; + buildPhases = ( + 119F3BF3CCA32D4BB089FF917ECD5C13 /* Sources */, + B459A5D4048DD01BA939BB3FD857D8A4 /* Frameworks */, + CC52059BEC70B517452CDFA876D48AD0 /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ConsistencyManager; + productName = ConsistencyManager; + productReference = 95FABE5E5C82E452542740630E035242 /* ConsistencyManager.framework */; + productType = "com.apple.product-type.framework"; + }; + FE788E61EAC5C03897FF0A17846577D1 /* Pods-ConsistencyManagerDemoTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 94C1E1EC610117D3962969B1A36C7561 /* Build configuration list for PBXNativeTarget "Pods-ConsistencyManagerDemoTests" */; + buildPhases = ( + D7482DDF39898860D355ED68968745B3 /* Sources */, + 8CB93A423F38BCC201D2C88FE103CDA2 /* Frameworks */, + 1771499526FC1CF6F6134BBC1520E80D /* Headers */, + ); + buildRules = ( + ); + dependencies = ( + 5BEE203327B0FC1C958E966EA41A0515 /* PBXTargetDependency */, + ); + name = "Pods-ConsistencyManagerDemoTests"; + productName = "Pods-ConsistencyManagerDemoTests"; + productReference = 6C7214876AADE303DB5DBC63DBD7159C /* Pods_ConsistencyManagerDemoTests.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 0730; + LastUpgradeCheck = 0700; + }; + buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = 7DB346D0F39D3F0E887471402A8071AB; + productRefGroup = 578A87766815CCE33587B12BFA2836EB /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + BF143FCB0BDDCCE19A427004B80418A1 /* ConsistencyManager */, + BCB5A2783D9A42AF3EFA9CBFC410483B /* Pods-ConsistencyManagerDemo */, + FE788E61EAC5C03897FF0A17846577D1 /* Pods-ConsistencyManagerDemoTests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + 119F3BF3CCA32D4BB089FF917ECD5C13 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 946F6A686048EA441C57692609C7D832 /* BatchListener.swift in Sources */, + ECEED617A5BCA13DEBC088D96919A256 /* BatchUpdateModel.swift in Sources */, + 4634C767EBD6E76069B986A6CB10504D /* CollectionHelpers.swift in Sources */, + 9CF5B934F1E4C8ABAA4BEDE6D492F53B /* ConsistencyManager-dummy.m in Sources */, + 7BEAE74FF1D8A510ABD12932094B4065 /* ConsistencyManager.swift in Sources */, + CCD1B4DA266FD079ED226B54CBA44B2A /* ConsistencyManagerDelegate.swift in Sources */, + ABFCB533DAAA09ADE1BD0A9F1132C199 /* ConsistencyManagerListener.swift in Sources */, + 2B4766559F7FACFEE5CDB0AB152BFA82 /* ConsistencyManagerModel.swift in Sources */, + EE235C93D5DBAC5F8B866D42CD698BB2 /* ErrorManager.swift in Sources */, + D77D2196E19893A32580FDD0485B4C52 /* ModelUpdates.swift in Sources */, + 98012ABE0EB56B1CCE7CD83BB1182914 /* WeakArray.swift in Sources */, + F48AFC9B00256A326D88241F8A2B0D0E /* WeakListenerArray.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + B0C887B85A28718400C4FE39E3BFC640 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9F5AEBB2084E771B548021CC26158A1E /* Pods-ConsistencyManagerDemo-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + D7482DDF39898860D355ED68968745B3 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8092A6930A3A7578C6CB9AD8DBE406B2 /* Pods-ConsistencyManagerDemoTests-dummy.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 5BEE203327B0FC1C958E966EA41A0515 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = ConsistencyManager; + target = BF143FCB0BDDCCE19A427004B80418A1 /* ConsistencyManager */; + targetProxy = 7013622491A77F8DFA5BA8EFE366E3BD /* PBXContainerItemProxy */; + }; + D31C9CDBA02A78CD909475D8E4EBD0FD /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + name = ConsistencyManager; + target = BF143FCB0BDDCCE19A427004B80418A1 /* ConsistencyManager */; + targetProxy = E4E5365944BCF8FF9103AF9C91C3BE69 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + 0AFBD76B0457D94C7BC77474AA39204D /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E173DD931B17B0F5230EE1F25C3D464C /* Pods-ConsistencyManagerDemoTests.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-ConsistencyManagerDemoTests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_ConsistencyManagerDemoTests; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 72469CBF2CC105B1D59E86EBA9C7715B /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4886136AA75D4BD3F3EA7F7737666C3F /* Pods-ConsistencyManagerDemoTests.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-ConsistencyManagerDemoTests/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_ConsistencyManagerDemoTests; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 7492D528FEDCA4E49E96A7723C51F482 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EECEF8CBAF61CF0C2988F5A14BF41D8C /* ConsistencyManager.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/ConsistencyManager/ConsistencyManager-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/ConsistencyManager/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/ConsistencyManager/ConsistencyManager.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + PRODUCT_NAME = ConsistencyManager; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 9F3BB3F0CE76191B0945D535973C1373 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = CB5425EA16CD7E7219B3B20B6A7891BE /* Pods-ConsistencyManagerDemo.debug.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-ConsistencyManagerDemo/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo.modulemap"; + MTL_ENABLE_DEBUG_INFO = YES; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_ConsistencyManagerDemo; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + AA33B34841CFF098650A47586DA8E6EE /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = AB96173C489A506D219E0CAD5CFCF72F /* Pods-ConsistencyManagerDemo.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + INFOPLIST_FILE = "Target Support Files/Pods-ConsistencyManagerDemo/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.2; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = Pods_ConsistencyManagerDemo; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + AADB9822762AD81BBAE83335B2AB1EB0 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.2; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + B1B5EB0850F98CB5AECDB015B690777F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGNING_REQUIRED = NO; + COPY_PHASE_STRIP = NO; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_DEBUG=1", + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.2; + ONLY_ACTIVE_ARCH = YES; + PROVISIONING_PROFILE_SPECIFIER = NO_SIGNING/; + STRIP_INSTALLED_PRODUCT = NO; + SYMROOT = "${SRCROOT}/../build"; + }; + name = Debug; + }; + DADE78EE9F187306B1A7CFD1189BC2B8 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = EECEF8CBAF61CF0C2988F5A14BF41D8C /* ConsistencyManager.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREFIX_HEADER = "Target Support Files/ConsistencyManager/ConsistencyManager-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/ConsistencyManager/Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/ConsistencyManager/ConsistencyManager.modulemap"; + MTL_ENABLE_DEBUG_INFO = NO; + PRODUCT_NAME = ConsistencyManager; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_VERSION = 3.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + B1B5EB0850F98CB5AECDB015B690777F /* Debug */, + AADB9822762AD81BBAE83335B2AB1EB0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 94C1E1EC610117D3962969B1A36C7561 /* Build configuration list for PBXNativeTarget "Pods-ConsistencyManagerDemoTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 72469CBF2CC105B1D59E86EBA9C7715B /* Debug */, + 0AFBD76B0457D94C7BC77474AA39204D /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D4860273489427FA3BC8FD45AEB05BD3 /* Build configuration list for PBXNativeTarget "ConsistencyManager" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 7492D528FEDCA4E49E96A7723C51F482 /* Debug */, + DADE78EE9F187306B1A7CFD1189BC2B8 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FEFD42CA6E51E5D6757BDBCDF4E3D570 /* Build configuration list for PBXNativeTarget "Pods-ConsistencyManagerDemo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9F3BB3F0CE76191B0945D535973C1373 /* Debug */, + AA33B34841CFF098650A47586DA8E6EE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; +} diff --git a/SampleApp/Pods/Target Support Files/ConsistencyManager/Info.plist b/SampleApp/Pods/Target Support Files/ConsistencyManager/Info.plist index 09cb0fc..4522675 100644 --- a/SampleApp/Pods/Target Support Files/ConsistencyManager/Info.plist +++ b/SampleApp/Pods/Target Support Files/ConsistencyManager/Info.plist @@ -15,7 +15,7 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 2.0.2 + 3.0.0 CFBundleSignature ???? CFBundleVersion diff --git a/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo-acknowledgements.plist b/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo-acknowledgements.plist index 9fa7002..adbf402 100644 --- a/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo-acknowledgements.plist +++ b/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo-acknowledgements.plist @@ -218,6 +218,8 @@ limitations under the License. + License + Apache License, Version 2.0 Title ConsistencyManager Type diff --git a/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo.debug.xcconfig b/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo.debug.xcconfig index 2733fc7..89417bb 100644 --- a/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo.debug.xcconfig +++ b/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo.debug.xcconfig @@ -1,3 +1,4 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES EMBEDDED_CONTENT_CONTAINS_SWIFT = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ConsistencyManager" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 diff --git a/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo.release.xcconfig b/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo.release.xcconfig index 2733fc7..89417bb 100644 --- a/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo.release.xcconfig +++ b/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemo/Pods-ConsistencyManagerDemo.release.xcconfig @@ -1,3 +1,4 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES EMBEDDED_CONTENT_CONTAINS_SWIFT = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ConsistencyManager" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 diff --git a/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests-acknowledgements.plist b/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests-acknowledgements.plist index 9fa7002..adbf402 100644 --- a/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests-acknowledgements.plist +++ b/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests-acknowledgements.plist @@ -218,6 +218,8 @@ limitations under the License. + License + Apache License, Version 2.0 Title ConsistencyManager Type diff --git a/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests.debug.xcconfig b/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests.debug.xcconfig index 2733fc7..89417bb 100644 --- a/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests.debug.xcconfig +++ b/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests.debug.xcconfig @@ -1,3 +1,4 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES EMBEDDED_CONTENT_CONTAINS_SWIFT = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ConsistencyManager" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 diff --git a/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests.release.xcconfig b/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests.release.xcconfig index 2733fc7..89417bb 100644 --- a/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests.release.xcconfig +++ b/SampleApp/Pods/Target Support Files/Pods-ConsistencyManagerDemoTests/Pods-ConsistencyManagerDemoTests.release.xcconfig @@ -1,3 +1,4 @@ +ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES EMBEDDED_CONTENT_CONTAINS_SWIFT = YES FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/ConsistencyManager" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1