gpt4 book ai didi

arrays - 在数组中组织多种类型的数据 swift 2

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

我是 iOS 开发新手。我正在尝试执行以下操作:存储一个标题,允许在其下方添加任意数量的子类别。每个子类别需要附加 2 个整数。我需要能够使用、编辑、删除和添加新标题、子类别和整数。

“标题”:
“子类别”:int、int
“子类别”:int、int

“标题”:
“子类别”:int、int
“子类别”:int、int
“子类别”:int、int
“子类别”:int、int

我已经多次尝试使用结构和数组。例如:

    struct everyThing {
var titles = ["Title 1", "Title 2", "Title 3"]
var subcategories = ["subcat1", "subcat2", "subcat3", "subcat4", "subcat5"]
var integers: [Double] = [5.0,10.0,7.0,15,3,6,7,8,12,14,13,15]
}

struct grouping1{
var title = everyThing().titles[0]
var subcategories = everyThing().subcategories[0..<2]
var integers = everyThing().workRest[0..<2]
}
struct grouping2{
var title = everyThing().titles[1]
var subcategories = everyThing().integers[2..<4]
var integers = everyThing().integers[2..<4]
}

跟踪和扩展变得不可能,因为可以在特定标题下添加任意数量的子类别。

对于组织这些数据的最佳方式有什么想法吗?如果这太模糊了,请告诉我。

最佳答案

您可以使用 dictionary [字符串:[字符串:(Int,Int)]]

let dictionary: [String : [String : (Int, Int)]] = [
"Title1" : [
"subcat1" : (5, 10),
"subcat2" : (7, 15)
],
"Title2" : [
"subcat3" : (3, 6),
"subcat4" : (7, 8),
"subcat5" : (12, 14)
]
]

要获取类别和子类别下的整数元组(Int, Int),您可以使用

let tuple: (Int, Int) = dictionary[title]![subcategory]!

但是,这使用 ! 进行强制展开。相反,一种不会导致应用程序崩溃的更安全的方法是

let tuple: (Int, Int)? = dictionary[title]?[subcategory]

然后,要获取元组中的值,您可以使用

let val1: Int? = tuple?.0
let val2: Int? = tuple?.1

要在值不存在时仅设置值 0 而不是 nil,可以使用 ?? 运算符

let val1: Int = tuple?.0 ?? 0
let val2: Int = tuple?.1 ?? 0

如果您想循环遍历所有值,可以使用

for title in dictionary.keys{
for subcategory in dictionary[title]!.keys{
//we can force unwrapping because we are sure the
//value will not be nil, because we are looping
//through the keys of the dictionary

let value1: Int = dictionary[title]![subcategory]!.0
let value2: Int = dictionary[title]![subcategory]!.1

//use title, subcategory, value1, and value2 as you please
}
}

设置值非常简单

dictionary["newOrExistingTitle"]["newOrExistingSubcategory"] = (num1, num2)

例如

dictionary["Title1"]["subcat2"] = (8, 2)

关于arrays - 在数组中组织多种类型的数据 swift 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35663320/

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