我正在使用下面的函数随机化我的数据(使用 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"]
除了 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。Title 和 detailText 完全随机化。
func randomCharacter() -> Character {
let randomNumber = GKRandomSource.sharedRandom().nextInt(upperBound: characterArray.count)
//characterImageView.image = UIImage(named: "\(randomCharacter().characterImageString)")
return characterArray[randomNumber]
}
我可以很好地获得 characterName 和 characterDetailText 的值,但不能获得 imageView。它不会出现在视图中并随机化。
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
}
然后我编辑了我的数组以反映这一点:
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]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句