gpt4 book ai didi

ios - 在 Swift 中存储和使用庞大的字典

转载 作者:行者123 更新时间:2023-11-28 12:22:21 25 4
gpt4 key购买 nike

我正在尝试将包含大约 11,000 对的字典加载到 Swift 程序中(大约 .7MB)。字典的值是数组,我需要能够遍历字典的数组并将这些值与另一个数组中的值进行比较。子数组中平均有 10 个项目,尽管有些有两三个,有些有数百个。

程序崩溃了,我正在寻找一种方法来修复它,同时保留我基于 Python 的原型(prototype)的功能。我想过用一堆属性列表,一个一个加载到内存中,但这似乎效率不高。我可以做些什么来重新设计它?

一些有问题的代码:var dictOfHashesAndMaterials:[String:[Int]]: = ["10928123sdfb234w3fw3": [123,435,1,573,456,3234,653,57856,434,345],"13435fw323df0239:dfsdf"[435,756,978,231,5668,485,9678,1233,87,989]]//和 11,000 个看起来与此类似的额外条目。

这里是我使用它的地方:`//用于填充成分列表的函数。 func populateListOfRecipes(){ var storedIngredients = UserDefaults.standard.object(forKey: "ingredients") 作为! [国际]

    for(key, value) in dictOfHashesAndMaterials{
let listSet = Set(storedMaterials)
let findListSet = Set(value)
if findListSet.isSubset(of: listSet){
print("found a match!")
arrayOfAvailableProjects.append(key)
}
}

tableView.reloadData()

}`

然后,tableView 由链接到给定项目细节的单元格填充。将哈希发送到服务器时填写详细信息,并将相应的指令完整返回给应用程序。

最佳答案

它在模拟器中崩溃了吗?我已经使用模拟器处理了 30 GB 的文件而没有崩溃。在设备上是一个不同的故事......

无论如何,试试这个:

for(key, value) in dictOfHashesAndMaterials{
autoreleasepool {
let listSet = Set(storedMaterials)
let findListSet = Set(value)
if findListSet.isSubset(of: listSet){
print("found a match!")
arrayOfAvailableProjects.append(key)
}
}
}

tableView.reloadData()

通过在每次迭代中清空自动释放池,您将防止用完可用内存。

关于ios - 在 Swift 中存储和使用庞大的字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44445706/

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