这里我使用GET方法从服务器获取数据但是当我最小化时,应用程序进入后台并且在我重新打开之后我没有看到之前获取的任何数据,我只看到第一个数据时间,当我最小化并重新打开它时迷失在这里是我的代码
- (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"];
}
}
答案 0 :(得分:0)
将NSDictionary *jsonArray
声明为(nonatomic,strong)
的属性,并使用该属性检索数据或填充textField。
第二件事,如果您的应用程序在后台运行很长时间并处于挂起状态,那么您应该将数据存储在数据库中。因为一旦app被挂起,它就会释放实例内存。
第二个重要的事情是你不应该使用NSURLRequestReloadIgnoringLocalAndRemoteCacheData
,因为它没有实现。
指定不仅应忽略本地缓存数据,而且应指示代理和其他中间人在协议允许的情况下忽略其缓存。 此常量未实现,不应使用。
因此,您可以将0
作为参数传递给cachePolicy
,也可以构建请求,如果timeoutInterval
不是必需的。
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://198.178.4.9:89/mybite_joomla/cron/webapi.php?task=webapi.viewProfile"]];