in code below, getting data url , storing textfields
directly. however, data lost when app goes background long period , reopen suspended state.
does have idea how fetch , store data in nsuserdefaults
, don't lose it, , show in text fields?
- (void)viewdidload { [super viewdidload]; nsmutableurlrequest *request=[nsmutableurlrequest requestwithurl:[nsurl urlwithstring:@"http://190.179.4.9:92/mybite_joomla/cron/webapi.php?task=webapi.viewprofile"]]; [request sethttpmethod:@"get"]; [request setvalue:@"application/json;charset=utf-8" forhttpheaderfield:@"content-type"]; nserror *err; nsurlresponse *response; nsdata *responsedata = [nsurlconnection sendsynchronousrequest:request returningresponse:&response error:&err]; nsdictionary *jsonarray = [nsjsonserialization jsonobjectwithdata:responsedata options: nsjsonreadingmutablecontainers error: &err]; (nsdictionary *dict in jsonarray) { // here directly setting textfields , need store first nametextview.text =[jsonarray valueforkey:@"name"]; usernametextview.text =[jsonarray valueforkey : @"username"]; emailtextview.text=[jsonarray valueforkey : @"email"]; citytextview.text =[jsonarray valueforkey : @"city"]; statetextview.text =[jsonarray valueforkey : @"state"]; countrytextview.text =[jsonarray valueforkey : @"country"]; } }
for (nsdictionary *dict in jsonarray) { [[nsuserdefaults standarduserdefaults]setobject:[jsonarray valueforkey:@"name"] forkey:@"namestring"]; [[nsuserdefaults standarduserdefaults]setobject:[jsonarray valueforkey:@"username"] forkey:@"usernamestring"]; [[nsuserdefaults standarduserdefaults]setobject:[jsonarray valueforkey:@"email"] forkey:@"emailstring"]; [[nsuserdefaults standarduserdefaults]setobject:[jsonarray valueforkey:@"city"] forkey:@"citystring"]; [[nsuserdefaults standarduserdefaults]setobject:[jsonarray valueforkey:@"state"] forkey:@"statestring"]; [[nsuserdefaults standarduserdefaults]setobject:[jsonarray valueforkey:@"country"] forkey:@"countrystring"]; }
then, in viewwillappear :
nametextview.text = [[nsuserdefaults standarduserdefaults] stringforkey:@"namestring"]; usernametextview.text = [[nsuserdefaults standarduserdefaults] stringforkey:@"usernamestring"]; emailtextview.text = [[nsuserdefaults standarduserdefaults] stringforkey:@"emailstring"]; citytextview.text = [[nsuserdefaults standarduserdefaults] stringforkey:@"citystring"]; statetextview.text = [[nsuserdefaults standarduserdefaults] stringforkey:@"statestring"]; countrytextview.text = [[nsuserdefaults standarduserdefaults] stringforkey:@"countrystring"];