我目前的 url 中有一个随机数生成器,用于将新数字分配给 url 的页面参数。当我获取新图像并打印 url 时,它使用相同的 url。我不知道如何删除网址中现有的随机数。
这是我的声明:
public static var random = Int.random(in: 0..<450)
static let ImageURL = "https://api.unsplash.com/search/photos/?client_id=\(UnsplashClient.apiKey)&page=\(random))"
请勿对数组使用 static。静态变量只生成一次。所以它不会为您生成随机数。 阅读本文:何时在 Swift 中使用静态常量和变量?
根据我的说法,您必须创建一个包含从 0 到 450 的整数的数字数组,如下所示
var array = Array(0...450)
,然后可以使用 array.randomElement()!
从该数组中选择随机数。选择后,从该数组中删除该数字。
由于您使用的是
static property
并且每次调用它时它的值都不会改变,除非您手动更新它。您可以使用 static computed property
来解决此问题,每次使用时都会计算其值。
public static var random: Int { .random(in: 0..<450) }
public static var ImageURL: String { "https://api.unsplash.com/search/photos/?client_id=\(UnsplashClient.apiKey)&page=\(random))" }
或者你可以像@leo在评论中提到的那样将它们组合起来,如果你没有任何其他目的
random
,就像这样:
public static var imageURL: String { "https://api.unsplash.com/search/photos/?client_id=\(UnsplashClient.apiKey)&page=\(Int.random(in: 0..<450)))" }
V 我有水果和蔬菜业务,而且我确实有theenu 水果业务,并且