url 中的随机数生成器

问题描述 投票:0回答:4

我目前的 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))"

ios swift random
4个回答
1
投票

请勿对数组使用 static。静态变量只生成一次。所以它不会为您生成随机数。 阅读本文:何时在 Swift 中使用静态常量和变量?


0
投票

根据我的说法,您必须创建一个包含从 0 到 450 的整数的数字数组,如下所示

var array = Array(0...450)
,然后可以使用
array.randomElement()!
从该数组中选择随机数。选择后,从该数组中删除该数字。


0
投票

由于您使用的是

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)))" }

0
投票

V 我有水果和蔬菜业务,而且我确实有theenu 水果业务,并且

© www.soinside.com 2019 - 2024. All rights reserved.