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