簡體   English   中英

在 Swift3 中使用可擴展的 headerview

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM