gpt4 book ai didi

ios - JSON 请求后使用新数据刷新 View Controller

转载 作者:行者123 更新时间:2023-11-29 01:51:57 26 4
gpt4 key购买 nike

NSString * storyboardName = @"storyboardX";
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:storyboardName bundle: nil];
UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"viewControllerX"];
[vc.view setNeedsDisplay];

我正在尝试在另一个线程中完成 JSON 请求后刷新 View Controller 中的显示。数据正确刷新,但 View 没有。我在数据拉取方法的末尾尝试 setNeedsDisplay,但它因 NSRangeException 索引 0 超出范围而崩溃。我认为这是因为上面的 View Controller 没有正确实例化,或者当前 View 没有被释放。 ARC 打开。

我也试过 [vc.view viewDidLoad] 结果相同。

上面的代码位于 (void)main JSON pull 方法的末尾。

最佳答案

1) 你的 JSON pull 可能没有在主线程中执行(我假设这是因为你没有显示它,如果不是,如果从服务器获取 json,它应该是无论如何)和 GUI无法在后台线程上调用代码。

2) 但是无论如何你都不应该做你正在尝试的事情,除非你真的想要加载一个 View Controller 而不是刷新一个已经加载的现有 View Controller 。 - 你拥有的代码将创建一个全新的 View Controller 实例,但如果你现在已经有一个显示,你将有两个相同 View Controller 的重复实例。

您应该向 View Controller 添加一个方法来重绘其内容。然后,当 JSON 准备好时,会触发 NSNotification。让您的 View Controller 监听通知并调用刷新 View 的方法。

关于ios - JSON 请求后使用新数据刷新 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31304795/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com