gpt4 book ai didi

arrays - 在 Swift 中收集和随机化数据

转载 作者:行者123 更新时间:2023-11-30 11:07:01 26 4
gpt4 key购买 nike

我使用下面的函数随机化我的数据(使用 3 个不同的数组)。

func randomCharacter() -> String {

let randomNumber = GKRandomSource.sharedRandom().nextInt(upperBound: characters.count)

characterImageView.image = UIImage(named: characterImages[randomNumber])

return characters[randomNumber]

}

可以在下面看到数组(我知道这可能不是它的最佳用途,但这是我正在努力学习的东西):

let characters = ["Zoolog Xander"]
let characterImages = ["Zoolog Xander"]
let characterDetails = ["Knows animals well, runs like a horse, eats a hamburger in 10 seconds and smells like a cow"]

Please see the view that contains characterLabel, ImageView and characterDetailLabel here.

除了characterDetail之外,其他方式都很好,因为当您随机化内容characterLabel和ImageView时,它们会匹配,因为它们使用相同的字符串,但不包含详细信息,因为它具有不同的内容。

我计划拥有一个可以随机化并包含所有相关数据的数据集。

我尝试将它们采用以下格式并获取对其的引用,但无法将其随机化。

let storyMakerCharacters = [
["character":"Zoolog Xander",
"characterImage":"Zoolog Xander",
"characterDetail":"Knows animals well, runs like a horse, eats a hamburger in 10 seconds and smells like a cow",
]
]

当我尝试使用和随机化它时,randomCharacter 函数确实返回了一个错误,提示如下:无法将 [[String:String]] 下标为 Int。

我想从您那里听到的只是要么为我指明以我想要的方式使用数组的正确方向,要么向我展示第二种方法中缺少的位置/内容。或者如果您对这种情况有更好的解决方案,那就更好了。

<小时/>

我按照建议更新了代码,但得到“无法将“字符”类型的返回表达式转换为“字符串”类型的返回表达式

return characterArray[randomNumber]

这非常有效。唯一缺少的部分是 imageView。标题和详细信息文本完美随机化。

func randomCharacter() -> Character {

let randomNumber = GKRandomSource.sharedRandom().nextInt(upperBound: characterArray.count)

//characterImageView.image = UIImage(named: "\(randomCharacter().characterImageString)")

return characterArray[randomNumber]

}

我可以很好地获取characterName和characterDetailText的值,但不能获取imageView。它不会显示在 View 上并被随机化。

characterName.text = randomCharacter().character
characterDetailText.text = randomCharacter().characterDetail
characterImageView.image = UIImage(named: "\(randomCharacter().characterImageString)")

ImageView 现在确实出现了,因为我必须在结构中将 characterImageString 更改为 UIImage

struct Character {
var character: String
var characterImage: UIImage
var characterDetail: String
}

然后我编辑了我的数组以反射(reflect)这一点:

var characterArray = [Character(character: "My character", characterImage: UIImage(named:"My character")!, characterDetail: "Knows animals well..."),

最后要解决的一件事是,当我随机化数据时,我会得到不同的角色名称、图像和角色细节。我应该得到一个数据集,比如角色名称是 Burak,图像应该是与角色名称和详细信息相关联的图像。

这就是我在motionEnded时调用数据的方式。似乎有什么不对劲的地方。有什么想法吗?

characterName.text = randomCharacter().character
characterDetailTextTrial.text = randomCharacter().characterDetail
characterImageView.image = randomCharacter().characterImage

最佳答案

你可以创建一个结构

Struct Character {
var character: String
var characterImageString: String
var characterDetail: String
}

然后用不同的字符初始化一个数组

var characterArray = [Character(character: "Zoolog Xander", characterImageString: "characterImageString", characterDetail: "some detail here."),
Character(......),
Character(......)]

现在您可以使用随机数为您的characterArray添加下标

characterArray[randomNumber]

关于arrays - 在 Swift 中收集和随机化数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52610272/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com