objective c - Check Api Version from web server for update core data -
thanks in advance help , understanding if write unusual things i'm new in objective-c language. json web service , trying store in core-data in case of network status off can run app whit saved data.
- (bool)application:(uiapplication *)application didfinishlaunchingwithoptions:(nsdictionary *)launchoptions { self.window = [[uiwindow alloc] initwithframe:[[uiscreen mainscreen] bounds]]; self.managedobjectcontext = [self managedobjectcontextwithname:@"coredata"]; nsmutablearray * competition = [self.jsoncompetition objectforkey:@"competition"]; nsmutabledictionary * competizione = [[nsmutabledictionary alloc] init]; (int = 0; i< competition.count; i++) { nsmanagedobject * competion = [nsentitydescription insertnewobjectforentityforname:@"competition" inmanagedobjectcontext:self.managedobjectcontext]; competizione = [competition objectatindex:i]; [competion setvalue:[competizione objectforkey:@"id"] forkeypath:@"id"]; [competion setvalue:[competizione objectforkey:@"name"] forkeypath:@"name"]; [competion setvalue:[competizione objectforkey:@"region"] forkeypath:@"region"]; nserror *error; if (![self.managedobjectcontext save:&error]) { nslog(@"errore: %@", [error localizeddescription]); } } nserror *errore; if (!errore) { // nslog(@"%@",_jsondict); } else { nslog(@"error!"); } [self.managedobjectcontext save:&errore]; reachability *reachability = [reachability reachabilityforinternetconnection]; networkstatus networkstatus = [reachability currentreachabilitystatus]; if (networkstatus == reachableviawwan) { } else if (networkstatus == reachableviawifi) { nsdata *data = [self callws]; nserror *errore; self.jsoncompetition = [nsjsonserialization jsonobjectwithdata:data options:kniloptions error:&errore]; self.managedobjectcontext = [self managedobjectcontextwithname:@"coredata"]; nsmutablearray * competition = [self.jsoncompetition objectforkey:@"competition"]; nsmutabledictionary * competizione = [[nsmutabledictionary alloc] init]; (int = 0; i< competition.count; i++) { nsmanagedobject * competion = [nsentitydescription insertnewobjectforentityforname:@"competition" inmanagedobjectcontext:self.managedobjectcontext]; competizione = [competition objectatindex:i]; [competion setvalue:[competizione objectforkey:@"id"] forkeypath:@"id"]; [competion setvalue:[competizione objectforkey:@"name"] forkeypath:@"name"]; [competion setvalue:[competizione objectforkey:@"region"] forkeypath:@"region"]; if (![self.managedobjectcontext save:&errore]) { nslog(@"errore: %@", [errore localizeddescription]); } } [self.managedobjectcontext save:&errore]; if (!error) { // nslog(@"%@",_jsondict); } else { nslog(@"error!"); } nsfetchrequest *fetchrequest = [[nsfetchrequest alloc] init]; nsentitydescription *entitycompetizione = [nsentitydescription entityforname:@"competition" inmanagedobjectcontext:self.managedobjectcontext]; [fetchrequest setentity:entitycompetizione]; nsarray *arraycompetizioni = [self.managedobjectcontext executefetchrequest:fetchrequest error:&errore]; } else { nsfetchrequest *fetchrequest = [[nsfetchrequest alloc] init]; nsentitydescription *entitycompetizione = [nsentitydescription entityforname:@"competition" inmanagedobjectcontext:self.managedobjectcontext]; [fetchrequest setentity:entitycompetizione]; nsarray *arraycompetizioni = [self.managedobjectcontext executefetchrequest:fetchrequest error:&errore]; } firstviewcontroller * fvc = [[firstviewcontroller alloc]initwithnibname:@"firstviewcontroller" bundle:nil]; self.window.rootviewcontroller = fvc; [self.window makekeyandvisible]; homecoming yes; in json have key whit apiversion,there way check if core-data need updated whit new version of json (in case of network status on )??
you save previous apiversion nsuserdefaults:
nsnumber *currentapiversion = ...; //you version here json [[nsuserdefaults standarduserdefaults] setobject:currentapiversion forkey:@"apiversion"]; when new info arrives, compare saved value:
nsnumber *currentapiversion = ...; //you version here json nsnumber *previousapiversion = [[nsuserdefaults standarduserdefaults] objectforkey:@"apiversion"]; if (![currentapiversion isequaltonumber:previousapiversion]) { //update stored version [[nsuserdefaults standarduserdefaults] setobject:currentapiversion forkey:@"apiversion"]; //the api version different. } objective-c json core-data
No comments:
Post a Comment