gpt4 book ai didi

ios - 弧。数组中的对象指向 nil

转载 作者:行者123 更新时间:2023-11-29 02:23:15 27 4
gpt4 key购买 nike

我有一个 ViewController,它从 CoreData 获取对象并用它们构建一个 UITableView。当用户按下一行时,我得到报告文学对象并使用以下方法将其传递给下一个 View Controller :

Reportage *reportage = [self.reportages objectAtIndex:indexPath.row];
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
ReportageTeaserPanelViewController *rightController = (ReportageTeaserPanelViewController*)self.menuContainerViewController.rightMenuViewController;
rightController.reportage = reportage;
[self.menuContainerViewController toggleRightSideMenuCompletion:nil];

变量 reportage 在 Controller ReportageTeaserPanelViewController 中声明为 strong。

问题如下。如果由于我的 Web 服务中有更新而必须异步重新加载父 View Controller 数组中的对象,则变量 reportage 在 Controller ReportageTeaserPanelViewController 中变为 nil。我认为使用强引用, Controller ReportageTeaserPanelViewController 应该保留“旧”报告文学对象,尽管它从数组中消失了。

对这种行为有什么解释吗?

谢谢

最佳答案

据我所知,您从 self.reportages 开始时不是 nil,但由于它在初始加载后异步重新加载,当用户在异步重新加载期间选择表时,您有 self.reportages 为零或可能不完整的危险。

为了防止用 nil 值初始化本地 reportage 变量,我建议不要直接在父 View Controller 的异步 block 中重新加载 self.reportages 数组,而是在该 block 内创建一个本地数组,然后,一旦该数组包含完整且正确的内容,设置 self.reportages 以包含该本地数组的内容。这样,只要您的 Web 服务返回正确的“reportage”,self.reportages 就永远不会等于 nil。

关于ios - 弧。数组中的对象指向 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27865591/

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