gpt4 book ai didi

ios - 如何存储嵌套字典值

转载 作者:行者123 更新时间:2023-11-28 06:34:29 25 4
gpt4 key购买 nike

我想存储嵌套字典的值,这样我的 Collection View 以后就可以使用它,而不必每次都循环查找它。如果我尝试将循环放在我的 cellforindexatpath 函数中,我也不认为它会起作用(我可能是错的)。 “let abilitiesArray: [Ability] =.....”在我的类(class)里面

最终我想要 abilitiesArray = abilities. “heroForDetails.hero.abilities”是一个 [String: [Ability]],所以我想返回其 heroForDetails.hero.id == heroId 的 [Ability],因为 heroForDetails.hero.abilities 中有多个键值对。当前错误是在闭包中缺少 return expected to return [Ability]。

let abilitiesArray: [Ability] = { () -> ([Ability]) in
let val = heroForDetails.hero.abilities
for (heroId, abilities) in val {

if heroForDetails.hero.id == heroId {
return abilities
}
}
}()

“abilities”是我打算像这样使用的数组

   func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
if let cell = collectionView.dequeueReusableCellWithReuseIdentifier("AbilitiesCell", forIndexPath: indexPath) as? AbilitiesCell {

let ability: Ability
ability = abilitiesArray[indexPath.row]
cell.configureCell(ability)
return cell

}else {
return UICollectionViewCell()
}
}

我希望我能很好地解释这一点。我刚开始学习编码,所以任何帮助都会很棒。我也可能完全错了。

最佳答案

在您的第一个代码片段中,您似乎正在使用键在 val 字典中查找一个项目。我希望这就是你想要做的。为此,您不需要遍历整个字典。这样做很慢。 (O(n)) 您可以使用下标通过键(heroForDeails.hero.id 变量)访问字典。这要快得多 (O(1))。

您可以将整个代码段缩短为一行:

let abilitiesArray = heroForDetails.hero.abilities[heroForDetails.hero.id]!

此外,我在您的帖子中没有看到任何问题...

关于ios - 如何存储嵌套字典值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39438381/

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