我正在为iphone开发一个应用程序,在viewDidLoad中,它调用arc4random来获取一个随机数。我的问题是,每次应用程序启动时,它都会从arc4random获得相同的数字。我应该指出,当我在iphone设备上测试应用程序并从设备触摸屏启动应用程序时,我会看到这种行为。如果我从xcode在设备上运行应用程序,那么我会看到不同的随机数。
任何帮助或建议将不胜感激。感谢。
答案 0 :(得分:2)
arc4random
不需要播种,每次调用时都不应返回相同的结果。
从您的评论中,我觉得每次您的应用程序到达前台时都不会执行您的代码。请记住,当您按下主页按钮时,默认情况下您的应用程序不会终止。它将进入后台,并在您再次点击该图标时恢复。
如果您的代码位于viewDidLoad
内,则只会调用一次,这意味着您的变量不会更新,并且每次检查时都会包含相同的值。当您从Xcode运行时,您的应用程序每次都会完全终止,您将获得预期的行为。
您应该将代码放在viewWillAppear:
或viewDidAppear:
中,以便在视图显示在屏幕上时调用,而不是在视图最初加载时调用。