Sync your NSUserDefaults to iCloud automatically
Clone or download
Pull request Compare This branch is 1 commit ahead, 2 commits behind Daij-Djan:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


What is this?

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


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