objective c - iCloud Drive - Read & Write (NSData) -


trying save custom objects nsdata upload icloud drive

any direction? tried key-value method, limited 1mb :/

is correct way? if yes, how can read icloud path?

+(void)icloudwrite:(nsdata*)data {      nsurl* ubiq = [[nsfilemanager defaultmanager]urlforubiquitycontaineridentifier:nil];     nsurl *ubiquitouspackage = [[ubiq urlbyappendingpathcomponent:@"documents"]  urlbyappendingpathcomponent:@"icloudhistory.zip"];      mydocument *mydoc = [[mydocument alloc] initwithfileurl:ubiquitouspackage];     mydoc.datacontent = data;      [mydoc savetourl:[mydoc fileurl] forsaveoperation:uidocumentsaveforoverwriting completionhandler:^(bool success)      {          if (success)          {              nslog(@"synced icloud");          }          else              nslog(@"syncing failed icloud");      }]; } 

edited:

enter image description here

// 1. file can uploaded icloud container of size (yes should having of space in icloud) lets take example sampledata.zip  // 2. method upload or sync sampledata.zip file in icloud container, icloud checks metadata of file before uploads icloud container (so first time upload file , next time upload changes)  -(void) icloudsyncing:(id)sender {     //doc dir     nsstring *documentsdirectory = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) objectatindex:0];     nsstring *filepath = [documentsdirectory stringbyappendingpathcomponent:@"sampledata.zip"];     nsurl *u = [[nsurl alloc] initfileurlwithpath:filepath];     nsdata *data = [[nsdata alloc] initwithcontentsofurl:u];      //get icloud container url     nsurl *ubiq = [[nsfilemanager defaultmanager]urlforubiquitycontaineridentifier:nil];// in place of nil can add container name     //create document dir in icloud container , upload/sync sampledata.zip     nsurl *ubiquitouspackage = [[ubiq urlbyappendingpathcomponent:@"documents"]urlbyappendingpathcomponent:@"sampledata.zip"];     mydoc = [[mydocument alloc] initwithfileurl:ubiquitouspackage];     mydoc.zipdatacontent = data;      [mydoc savetourl:[mydoc fileurl] forsaveoperation:uidocumentsaveforcreating completionhandler:^(bool success)      {          if (success)          {              nslog(@"sampledata.zip: synced icloud");          }          else              nslog(@"sampledata.zip: syncing failed icloud");       }]; }      // 3 download data icloud container  - (ibaction)getdata:(id)sender {      //--------------------------get data icloud -----------------------------//     id token = [[nsfilemanager defaultmanager] ubiquityidentitytoken];     if (token == nil)     {         nslog(@"icloud not login");     }     else     {         nslog(@"icloud login");          nserror *error = nil;         nsurl *ubiq = [[nsfilemanager defaultmanager]urlforubiquitycontaineridentifier:nil];// in place of nil can add container name         nsurl *ubiquitouspackage = [[ubiq urlbyappendingpathcomponent:@"documents"]urlbyappendingpathcomponent:@"sampledata.zip"];         bool isfiledounloaded = [[nsfilemanager defaultmanager]startdownloadingubiquitousitematurl:ubiquitouspackage error:&error];         if (isfiledounloaded) {             nslog(@"%d",isfiledounloaded);             nsstring *documentsdirectory = [nssearchpathfordirectoriesindomains(nsdocumentdirectory, nsuserdomainmask, yes) objectatindex:0];             //changing file name sampledata.zip present in doc directory have used upload             nsstring* filename = [nsstring stringwithformat:@"recsampledata.zip"];             nsstring* fileatpath = [documentsdirectory stringbyappendingpathcomponent:filename];             nsdata *datafile = [nsdata datawithcontentsofurl:ubiquitouspackage];             bool filestatus = [datafile writetofile:fileatpath atomically:no];             if (filestatus) {                 nslog(@"success");             }         }         else{             nslog(@"%d",isfiledounloaded);         }     } }  //4 voila done :) 

don't forget add following parameters plist

<key>nsubiquitouscontainers</key>     <dict>         <key>yourcloudcontainerid</key>         <dict>             <key>nsubiquitouscontainerisdocumentscopepublic</key>             <true/>             <key>nsubiquitouscontainername</key>             <string>yourcloudcontainername</string>             <key>nsubiquitouscontainersupportedfolderlevels</key>             <string>any</string>         </dict>     </dict> 

Comments

Popular posts from this blog

ubuntu - PHP script to find files of certain extensions in a directory, returns populated array when run in browser, but empty array when run from terminal -

php - How can i create a user dashboard -

javascript - How to detect toggling of the fullscreen-toolbar in jQuery Mobile? -