2017-05-23 11 views
0

Swift 작성한 iOS 앱에서 모든 행에 UILabel이있는 UITableView이 있습니다. 그 외에, 나는 또한 [String:Int] 사전의 사전이있다.Swift를 사용하여 String : Int 사전을 iOS의 UITableView에 추가

UITableView 행의 각 UILabel에 사전의 문자열 값이 포함되기를 원합니다. 각 행은 Int 값이 나타내는만큼 많은 시간이 소요됩니다. 예를 들어

, 이제 나는이 사전을 가정 해 봅시다 :

var dict: [String:Int] = ["apple": 2, "Banana": 3, "Orange": 7] 

그래서 나는 그들에 Apple 라벨, 그들 Banana 레이블 3 행 및 Orange 7 행과 2 개 행이해야 할 UITableView에서 그들 안에 레이블.

tableView(cellForRowAt:) 방법으로 어떻게 할 수 있습니까?

+1

브 루트 포스 방법과 같은 적절한 배열 사용 무언가에 사전을 변환하려면 오른쪽의 값에 해당하는 키를 추가 다른 배열 (2)를 타고 1.. 이제 Tableview Datasource 및 Delegate Methods에서이 배열을 사용해야합니다. – Priyal

+0

numberOfRowsInSections를 사용하지 않는 이유는 무엇입니까? –

답변

2

우선 대리자 메서드 numberOfRowscellForRow에 적절한 값을 반환하려면 데이터 소스로 배열이 필요합니다.

이 될 수있는이

let dict = ["apple": 2, "Banana": 3, "Orange": 7] 

var fruit = [String]() 

for key in dict.keys.sorted(by: {$0.lowercased() < $1.lowercased() }) { 
    let value = dict[key]! 
    for _ in 0..<value { 
     fruit.append(key) 
    } 
} // result: ["apple", "apple", "Banana", "Banana", "Banana", "Orange", "Orange", "Orange", "Orange", "Orange", "Orange", "Orange"]