/Stormcloud

An iCloud document manager with Core Data and JSON support, in Swift

Primary LanguageSwiftMIT LicenseMIT

Stormcloud is an easy way to convert and write JSON to iCloud documents and back.

It also supports Core Data, converting a Core Data driven database to JSON and back—pass it an NSManagedObjectContext and it will read out all of the entities, attributes, and relationships, wrap them in a JSON document and upload that document to iCloud.

Usage

let stormcloud = Stormcloud()

Regular JSON:

stormcloud.backupObjectsToJSON( objects : AnyObject, completion : (error : StormcloudError?, metadata : StormcloudMetadata?) -> () ) {

    if let hasError = error {
        // Handle error
    } 

    if let newMetadata = metadata {
        print("Successfully added new document with filename: \(metadata.filename)")
    }
})

Restoring

stormcloud.restoreBackup(withMetadata metadata : StormcloudMetadata, completion : (error: StormcloudError?, restoredObjects : AnyObject? ) -> () ) {
    if let hasError = error {
        // Handle error
    } 
}

Managed Object Context:

stormcloud.backupCoreDataEntities(inContext: self.managedObjectContext, completion: { (error, metadata) -> () in

    if let hasError = error {
        // Handle error
    } 

    if let newMetadata = metadata {
        print("Successfully added new document with filename: \(metadata.filename)")
    }

})

Restoring

stormcloud.restoreCoreDataBackup(withMetadata metadata : StormcloudMetadata, toContext context : NSManagedObjectContext,  completion : (error : StormcloudError?) -> () ) {
    if let hasError = error {
        // Handle error here
    }
}