2016-06-07 4 views
0

hier bin ich holen die Daten vom Server mit GET-Methode, aber wenn ich minimiere, geht die App im Hintergrund und nachdem ich wieder öffnen, sehe ich nicht alle Daten, die ich vor geholt, sehe ich nur die Daten zum ersten Mal, und wenn ich minimieren und öffnen sie es hier verloren ist mein Codeabgerufene Daten mit "GET" -Methode verloren gehen, wenn ich die App aus dem Hintergrund öffnen

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://198.178.4.9:89/mybite_joomla/cron/webapi.php?task=webapi.viewProfile"]cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData 
               timeoutInterval:10 
           ]; 


    [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];{ 


for (NSDictionary *dict in jsonArray) { 

    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"]; 
} 
} 

Antwort

0

NSDictionary *jsonArray als Eigenschaft mit (nonatomic,strong) deklarieren und diese Eigenschaft verwenden, um Daten abzurufen oder füllen Sie textFields.

Zweite Sache, wenn Ihre App sehr lange Zeit im Hintergrund bleibt und in den Schwebezustand, dann sollten Sie Daten in der Datenbank speichern müssen. Sobald die App angehalten wurde, wird der Instanzenspeicher freigegeben.

Zweite wichtige Sache ist, sollten Sie nicht NSURLRequestReloadIgnoringLocalAndRemoteCacheData verwenden, wie es nicht implementiert ist.

Als Apple documentation Staaten,

Gibt an, dass sollten nicht nur die lokalen Daten-Cache ignoriert werden, sondern dass ihre Caches angewiesen, Proxies und andere Zwischenprodukte sollten so weit außer Acht zu lassen, wie das Protokoll ermöglicht. Diese Konstante ist nicht implementiert und sollte nicht verwendet werden.

So können Sie 0 als Parameter cachePolicy passieren oder können Anfrage konstruieren wie wenn timeoutInterval nicht zwingend vorgeschrieben ist.

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://198.178.4.9:89/mybite_joomla/cron/webapi.php?task=webapi.viewProfile"]]; 
+0

kann ich speichern die Daten NSUserDefaults verwendet, wird es in meinem Fall hilfreich sein, wenn die App im Hintergrund für lange Zeit bleibt und sich in suspendiertem Zustand @Lion – vicky

+0

Ja, Sie können 'verwenden NSUserDefaults' – Lion

+0

und keine Verwendung von erklärt NSDictionary * jsonArray als Eigenschaft ... selbst wenn App für ein paar Sekunden im Hintergrund geht verliere ich Daten @Lion – vicky

Verwandte Themen