我已经设置了我的应用程序,以便每个应用程序进入前台,它执行一个 Web 调用,从 Web 服务器调用信息,它接收并解析 JSON,然后将其离线存储。
我的应用程序是一个选项卡式应用程序,每个屏幕的信息都是从 JSON 设置的,图像也是从服务器中提取的。所以我希望每个页面上的信息在完成后更新,但它没有更新。
我暂时从模拟器运行我的应用程序,以防万一。目前,我可以获得更新信息的唯一方法是使用该 viewDidAppear 或停止并从 xCode 重新启动应用程序。
我尝试从 AppDelegates 调用类 viewDidLoad
- (void)applicationWillEnterForeground:(UIApplication *)application
{
/*
Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background.
*/
WebCalls *wc = [[WebCalls alloc] init];
DashboardVC *db = [[DashboardVC alloc] init];
[wc setWebCallDidFinish:^(NSString * json, NSString *ID) {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex: 0];
NSString *docFile = [docDir stringByAppendingPathComponent: @"json.txt"];
[json writeToFile:docFile atomically:NO encoding:NSUTF8StringEncoding error:Nil];
NSString *docDir2 = [paths objectAtIndex: 0];
NSString *docFile2 = [docDir2 stringByAppendingPathComponent: @"theID.txt"];
[ID writeToFile:docFile2 atomically:NO encoding:NSUTF8StringEncoding error:Nil];
[db testme];
}];
[wc getData];
}
这会再次调用 viewDidLoad,但信息不会更新。任何想法为什么?
编辑:在那个类中,它像这样读取 JSON
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docDir = [paths objectAtIndex: 0];
NSString *docFile = [docDir stringByAppendingPathComponent: @"json.txt"];
[json writeToFile:docFile atomically:NO encoding:NSUTF8StringEncoding error:Nil];
我可以将 JSON 打印出来,而且 JSON 肯定在更新,但屏幕上的信息却没有。
编辑:通过网络电话更新