Sumi-Interactive / DDiCloudSync

Sync your NSUserDefaults to iCloud automatically

Home Page:Complete rewrite of MKiCloudSync with delegation for conflict handling

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

About

Sync your NSUserDefaults to iCloud automatically

Complete rewrite of MKiCloudSync with delegation for conflict handling

License:Other


Languages

Language:Objective-C 94.9%Language:Ruby 5.1%