Database Reference
In-Depth Information
-(void)setiCloudWasOn:(BOOL)on {
[[NSUserDefaults standardUserDefaults] setBool:on forKey:CTiCloudWasOn];
[[NSUserDefaults standardUserDefaults] synchronize];
}
-(BOOL)promptedForiCloud {
return [[NSUserDefaults standardUserDefaults] boolForKey:CTPromptedForiCloud];
}
-(void)setPromptedForiCloud:(BOOL)prompted {
[[NSUserDefaults standardUserDefaults] setBool:prompted forKey:CTPromptedForiCloud];
[[NSUserDefaults standardUserDefaults] synchronize];
}
We have getters and setters to determine if iCloud is on or was on and we also have one for our
iCloud prompt. We want to make sure that we aren't prompting the user continuously if they have
already said they don't want to use iCloud. Now let's modify our reload method so that we handle
these different states.
-(void)reload {
[_entries removeAllObjects];
[self.collectionView reloadData];
[self.navigationItem.rightBarButtonItem setEnabled:NO];
if([AppDelegate iCloudIsAvailable]){
if(![self iCloudOn] && ![self promptedForiCloud]){
[self setPromptedForiCloud:YES];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"iCloud is available"
message:@"Would you like to store you documents in the cloud to keep them up-to-date across all of
your devices?" delegate:self cancelButtonTitle:@"Not Now" otherButtonTitles:@"Yes", nil];
[alert setTag:2];
[alert show];
}
//Move files if newly switched on or off
if([self iCloudOn] && ![self iCloudWasOn]){
//TODO #1 move data to iCloud
} else if(![self iCloudOn] && [self iCloudWasOn]){
//TODO #2 copy data from iCloud
}
//TODO #3 get iCloud files
[self setiCloudWasOn:[self iCloudOn]];
} else {
[self setPromptedForiCloud:NO];
 
Search WWH ::




Custom Search