[英]Using expandable headerview in Swift3
我已經嘗試了幾次,但沒有運氣。 我使用 Swift3 使其可擴展,我可以獲得 JSON 數據,但是在將數據解析為僅出現一個的可擴展 tableview 時。 這是我使用的編碼:
這里是 JSON:
"project": [
{
"bu_name": "IT and Digital Ecosystem Solution Delivery",
"project_list": [
{
"project_id": 8791520,
"project_name": "MobApps Radio"
}
]
},
{
"bu_name": "Business Solution, Delivery & MO",
"project_list": [
{
"project_id": 8791392,
"project_name": "Research and Development Hololens (Augmented Virtual Reality)"
},
{
"project_id": 8790857,
"project_name": "Application Development for Probis Digital Service”
},
{
"project_id": 8436483,
"project_name": "Non Project - Application DMO"
},
{
"project_id": 8179950,
"project_name": "Release Quality Improvement"
},
{
"project_id": 7548089,
"project_name": "Application Development" }
]
}
]
這里編碼獲取 JSON 數據:
var perfArrProjectId = [String]()
var perfArrProjectName = [String]()
var namabu = ""
if let itemProject = jsonData?["project"] as? NSArray {
for i in 0..<itemProject.count {
if let obj = itemProject[i] as? NSDictionary {
let stringBU = obj.makeIterator().next()
namabu = stringBU?.value as! String
print("BU Name: \(namabu)")
let buName2 = obj["bu_name"] as! String
perfArrBuName.append(buName2)
guard let projectList = obj["project_list"] as? [[String: Any]] else {return}
for list in projectList {
let projectId = list["project_id"] as! Int
let projectName = list["project_name"] as! String
perfArrProjectId.append(String(projectId))
perfArrProjectName.append(projectName)
print("_Project ID: \(projectId) \n_Project Name: \(projectName) \n”)
listPerformances = [
ModelPerformances(bussines: namaBU, projectid: perfArrProjectId, projectName: perfArrProjectName expand: false)
]
}
}
}
}
這里輸出:
BU Name: IT and Digital Solution Delivery
__Project ID: 8791520
__Project Name: MobApps Radio
BU Name: Business Solution, Delivery & MO
__Project ID: 8791392
__Project Name: Research and Development (Augmented Virtual Reality)
__Project ID: 8790857
__Project Name: Application Development for Digital
__Project ID: 8436483
__Project Name: Non Project - Application DMO
__Project ID: 8179950
__Project Name: Release Quality Improvement Program
__Project ID: 7548089
__Project Name: Application Development
我認為你的問題,你不知道你有多少子菜單項。
改變它們
perfArrProjectId.append(String(projectId))
perfArrProjectName.append(projectName)
和
perfArrProjectId[[String]]
perfArrProjectName[[String]]
inside the first for
perfArrProjectId.append([String]())
perfArrProjectName.append([String]())
second for
perfArrProjectId[i].append(String(projectId))
perfArrProjectName[i].append(projectName)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.