arc4random始终在app start上返回相同的初始值

时间:2013-05-03 09:50:33

标签: ios ios4 arc4random

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

您应该将代码放在viewWillAppear:viewDidAppear:中,以便在视图显示在屏幕上时调用,而不是在视图最初加载时调用。