Fixed an issue where the application sync manager state wasn't being reset properly.
Switched to the new NS_ENUM macro for declaring the framework's enumerated values. http://nshipster.com/ns_enum-ns_options/
Fixed an issue in the Mac sample project where the header search path was wrong.
Latest DropboxSDK
Added the ability to apply zip compression to the Whole Store file prior to an upload so that the transfer time between local Dropbox account and cloud is minimized. The code will also decompress the file when it is downloaded from the cloud to the device. Similar to the encryption option, I added BOOL values to the App Sync Manager, Doc Sync Manager, and Operation entities that indicate whether or not to compress the Whole Store. For now, that is set during the Application Sync Manager configuration process and then it carries through to the Doc Sync Manager and Upload/Download operations.

Current Gaps - I only implemented this for the Dropbox integration mode. I'm sure it could benefit the FileSystem mode as well (and Drew's iCloud mode) but I didn't have time to implement and test those at this time.

The compression code is based off of SSZipArchive. The only change was the addition of a defined constant to use as a file suffix reference.
Changed the order of encryption and compression so that the compression is done first. Doing the compression on an encrypted file was resulting in a file barely smaller than the original, whereas doing the compression first is giving good compression results regardless of whether encryption is on or off. Also modified the download store code to not fail out if the decompression is unsuccessful. This is for the use case where a previous version of an app using TICDS that has a whole store sitting on a remote without compression is then downloaded by the new version which assumes compression should be on all the time. In this case, the code will try to decompress and if the decompression fails, then the compression steps back out and the file is handled as if compression was not used.
Added methods to allow sync manager delegate calls to announce upload/download progress changes during whole store moves. This allows the app to provide a realtime progress indicator for the user. For now this is only implemented on Whole Store uploads and downloads.
Merge pull request #37 from ChronicStim/feature/WholeStoreCompression

Compression of WholeStore file to improve transfer time between device & cloud (Resumbitted)
Merge pull request #38 from ChronicStim/feature/TransferStatusNotificationCallback

Need a delegate callback to respond to upload/download operation progress
Xcode-updated project file.
Add SSZipArchive to the iOS project.
Added a managed object context save right before the persistent store is moved to ensure that all pending sync changes are committed to the store before it is moved.
Copy the local sync changes persistent store and then remove it. Also, don't stand up a new sync changes MOC right away since it will get lazily loaded as needed.
Added background task identifier properties to general TICDSOperation class and TICDSDocumentSyncManager class, along with methods to be run before and after each significant process starts up. The methods will force the app to continue running after the app has moved into the background. This will ensure all operations will complete post backgrounding, and is also book ends the synchronization process to ensure it's multiple operations all complete post-backgrounding.
Added methods to cancel any operations in the "Other Tasks" queues for both the ApplicationSyncManager and DocumentSyncManager. Also moved the assignment of property values during registration process to before the uploading of store to ensure that they are set before this operation is created.
Added a BOOL flag to both sync managers and general operation class that will indicate whether or not the class should be allowed to continue processing when the app goes into a background state. In addition to the flag, a new backgroundTaskID has been added which is used to by iOS to track each operation when it is running in the background. Whenever an operation is completed, we now assign this backgroundTaskID which lets the operation run in after the app goes to the background state. In addition, there are delegate statements added to the operation and sync manager classes that ask if a given operation should be allowed to run in the background state. If the delegate responds NO, then the operation is flagged as such. When the appDelegate indicates the app is going to the background, a method is run to review all queued TICDS operations to see if they are allowed to run in the background or not. if they are, then they continue. If they are not, then a cancel request is sent to the op. This allows the operations to be shut down more orderly than if the app just cuts them off after the 5 second background limit. It also gives the programmer an option to support certain apps in the background, while letting others be cancelled.
Merge pull request #41 from ChronicStim/feature/BackgroundStateProcessing

Allowing for Continued Operation Processing After App Enters Background State
Just a slight formatting change, nothing to see here.
Merge branch 'develop' of github.com:nothirst/TICoreDataSync into develop
Reworked the logic in endBackgroundTask to bail early if the backgroundTaskID is set to UIBackgroundTaskInvalid. This keeps the program logic left-aligned, making it easier to read.