Sync your NSUserDefaults to iCloud automatically
Objective-C Ruby
Switch branches/tags
Nothing to show
Pull request Compare This branch is 10 commits ahead, 1 commit behind MugunthKumar:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
DDiCloudSync.xcodeproj
DDiCloudSync
DDiCloudSyncTests
.gitignore
DDiCloudSync.podspec
Icon.png
LICENSE.txt
README.mdown

README.mdown

What is this?

A clean and simple class to sync NSUserDefaults to iCloud. (WITH a delegate for conflict handling. See this [Stackoverflow question][1]

[1]: http://stackoverflow.com/questions/14112942/nsuserdefaults-and-icloud/14113064)

How to use?

  1. Drag the two classes from the DDiCloudSync folder into your projecy and #import the header file in your Application Delegate
  2. init the class: [DDiCloudSync sharedSync] and set a delegate to handle merging potentially conflicting data from local or from iCloud
  3. Call [DDiCloudSync start];

###Example delegate

whenever something is about to be sync'd up, this method is called to provide a final dictionary to send

- (NSDictionary*)mergedDefaultsForUpdatingCloud:(NSDictionary*)dictInCloud withLocalDefaults:(NSDictionary*)dict {
    NSMutableDictionary *newdict = dict.mutableCopy;
    newdict[@"merged"] = @"to icloud";
    return newdict;
}

whenever something is about to be sync'd down, this method is called to provide a final dictionary to write to the defaults

   - (NSDictionary*)mergedDefaultsForUpdatingLocalDefaults:(NSDictionary*)dict withCloud:(NSDictionary*)dictInCloud {
    NSMutableDictionary *newdict = dictInCloud.mutableCopy;
    newdict[@"merged"] = @"from icloud";
    return newdict;
}

important: this is only a mock-implementation of the delegate. You need to put custom app-specific logic here for conflict handling

note: when you dont set a delegate, the class just overwrites the cloud / the local defaults

#####based on original MKiCloudSync code by @mugunthkumar