【发布时间】:2020-08-27 05:38:26
【问题描述】:
花了几个小时尝试修复我的应用程序中的错误后,我来这里向您寻求帮助并能够继续。这是我的情况(我会尽量简短):
1- 我制作了一个小测验应用程序,从 Open Trivia 网站的 API 中检索 20 个问题。第一张图片是玩家填写名字的地方。正是在这个 viewController 中,我调用 GetAPIINfo 类从 api 获取数据并将其加载到我的全局变量中
2- 游戏开始后,您可以看到 iPhone 屏幕上的内容与从 API 中检索到的内容相对应。这对应于另一个名为“QuizViewController”的视图控制器。见图2
3- 询问完所有 20 个问题(每位玩家 10 个)后,屏幕上会提示“游戏结束”(图 3)。
4- 我想做的是在按下“重新匹配”警报控制器按钮后重新开始比赛。当它被按下时,我再次调用 API 并加载新的 20 个问题。在图 4 中,您可以看到我尝试做什么(以及在此之前的其他内容)以重新加载我的 QuizViewController
5- 我可以开始新游戏,分数重置为零并且玩家名称相同。此外,您可以在图 5 的控制台中看到我成功加载了一组新的 20 个问题。问题:游戏仍然显示第一组20个问题。基本上,即使我加载了 20 个新问题,我也会再次使用相同的问题和答案。
6- 我在 QuizBrain 文件(存储问题和答案的值)中检查了我的值“测验”没有被新值覆盖(参见图 6),即使我删除了全局变量“每次按“重新匹配”按钮时都会进行测验。
所以我在这里,请你们与我分享你们的智慧和知识,以解决这个问题。提前感谢您的建议。
我已经尝试了几个选项,例如 this one 或 this one,其中还有许多迄今为止没有成功的选项。
TL;DR:我制作了一个从 API 加载 20 个问题的测验应用程序,我想用一组新的 20 个问题重新加载我的视图,但我仍然会看到并玩第一组 20 个问题,即使我加载了一组新问题,但显然它们没有被存储。问候。
【问题讨论】:
-
您是否在等待 API 完成并返回一组新的问题和答案后才开始游戏?
-
大家好。不,当我单击“重新匹配”时调用 GetApiInfo。为什么?
-
是的,点击rematch后会触发API调用。但是,在向用户显示问题之前,您是否正在等待此 API 调用完成?如果没有,您将显示较旧的数据。
-
你好星期六。实际上,在单击“重新匹配”按钮之前,我必须调用 API 以使用新的新变量重置所有全局变量。所以当游戏结束时,我调用 API 来重置所有内容并加载新数据,然后我重新加载视图控制器并解决了问题。感谢您的提示。
-
没问题。我已将评论移至回答。如果有帮助,请标记为已接受。
标签: ios swift viewcontroller reload