0

我正在为 iphone 开发一个应用程序,它在 viewDidLoad 中调用 arc4random 来获取随机数。我的问题是每次应用程序启动时,它都会从 arc4random 获得相同的数字。我应该指出,当我在我的 iphone 设备上测试应用程序并从设备触摸屏启动应用程序时,我看到了这种行为。如果我从 xcode 在设备上运行应用程序,那么我会看到不同的随机数。

任何帮助或建议将不胜感激。谢谢。

4

1 回答 1

2

arc4random不需要播种,并且每次调用它时都不应该返回相同的结果。

从您的评论来看,在我看来,每次您的应用程序进入前台时,您的代码都没有被执行。请记住,当您按下主页按钮时,您的应用程序默认情况下不会终止。它将进入后台,并在您再次点击图标时恢复。

如果你的代码在里面viewDidLoad,它只会被调用一次,这意味着你的变量不会被更新,并且每次你检查它时都会包含相同的值。当您从 Xcode 运行时,您的应用程序每次都将完全终止,您将获得预期的行为。

您可能应该将代码放入其中,viewWillAppear:或者viewDidAppear:当视图出现在屏幕上时调用它,而不是在视图最初加载时调用一次。

于 2013-05-03T10:27:09.360 回答