Web サービスからデータを取得しています。そのデータを5つの画像を含むテーブルビューにロードし、いくつかの文字列データが完全に取得され、テーブルビューに正常にロードされます。しかし、ユーザーがブトゥーンをタップすると、もう一度そのWebサービスが呼び出されます。そのデータをそのテーブルビューにもう一度ロードします。
その負荷が再び重複するのを防ぎたいです。どうすればいいですか。
ユーザーがボタンをタップしてキーをNsuserDefaultに保存すると、保存しようとしました。次に、キーが存在する場合はwebserviceへの呼び出しがなく、キーが事前に設定されていない場合はwebserviceを呼び出さないでくださいが、tablviewに空白が表示されます。キーが NsDictionary に保存された後。
コードはこちら。
-(void)btnCliked
{
AppDelegate * delegate=(AppDelegate *)[[UIApplication sharedApplication]delegate];
NSLog(@"%@",[delegate.def objectForKey:@"Check"]);
if([delegate.def objectForKey:@"Check"])
{
}
else
{
delegate.str= [delegate.imgurl stringByAppendingString:@"getappdata.php"]; // Get data through php file
NSLog(@"%@",delegate.str);
NSURL * url=[NSURL URLWithString:delegate.str];
NSData * data=[NSData dataWithContentsOfURL:url];
NSError * error;
//Get json data in Dictionary
NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingMutableContainers error: &error];
NSLog(@"%@",json);
NSLog(@"%@",delegate.firstArray);
NSArray * responseArr = json[@"Deviceinfo"];
for(NSDictionary * dict in responseArr)
{
[delegate.firstArray addObject:[dict valueForKey:@"Appname"]];
[delegate.secondArray addObject:[dict valueForKey:@"Description"]];
[delegate.thirdArray addObject:[dict valueForKey:@"Icon"]];
[delegate.fourthArray addObject:[dict valueForKey:@"Link"]];
}
NSLog(@"%@",delegate.firstArray);
NSLog(@"%@",delegate.secondArray);
NSLog(@"This is image path array %@",delegate.thirdArray);
NSLog(@"this is App Link Array %@",delegate.fourthArray);
[delegate.def setObject:delegate.firstArray forKey:@"Check"];
[delegate.def synchronize];
}
GetMoreAppsViewController * gmavc=[[GetMoreAppsViewController alloc]initWithNibName:@"GetMoreAppsViewController" bundle:nil];
[self.navigationController pushViewController:gmavc animated:YES];
}
どうすればこれを解決できますか。
前もって感謝します..