2015-02-03 10 views
1

문자열 형식의 이름 (es.luca, marco, giuseppe, ..)이 포함 된 배열이 있습니다. 이 배열은 테이블을 채우는 데 사용됩니다. 테이블을 섹션 (az)으로 나누고 오른쪽 섹션의 배열 이름을 넣을 수 있습니까?섹션으로 나눈 알파벳 테이블 뷰

답변

4

당신은 키와 첫 번째 문자와 값으로 이름의 배열과 사전 만들기 위해 배열을 반복 할 수 있습니다

var nameDictionary: Dictionary<String, Array<String>> = [:] 

for name in nameArray { 
    var key = name[0].uppercaseString // first letter of the name is the key 
    if let arrayForLetter = nameDictionary[key] { // if the key already exists 
     arrayForLetter.append(name) // we update the value 
     nameDictionary.updateValue(arrayForLetter, forKey: key) // and we pass it to the dictionary 
    } else { // if the key doesn't already exists in our dictionary 
     nameDictionary.updateValue([name], forKey: key) // we create an array with the name and add it to the dictionary 
    } 
} 

을 스위프트에서을 있음 Obj-C

NSMutableDictionary *nameDictionary = [[NSMutableDictionary alloc] init]; 

for name in nameArray { 

    NSString *key = [[name substringToIndex: 1] uppercaseString]; 

    if [nameDictionary objectForKey:key] != nil { 

     NSMutableArray *tempArray = [nameDictionary objectForKey:key]; 
     [tempArray addObject: name]; 
     [nameDictionary setObject:tempArray forkey:key]; 
    } else { 
     NSMutableArray *tempArray = [[NSMutableArray alloc] initWithObjects: name, nil]; 
     [nameDictionary setObject:tempArray forkey:key]; 
    } 
} 

다음에 nameDictionary.count, nameDictionary [key] .count 및 특정 섹션의 행 내용을 nameDictionary [key]로 반환하여 행 수를 사용하여 섹션 수를 얻을 수 있습니다.이 배열은 배열을 반환합니다. 키

편집에 저장된 문자로 시작하는 모든 이름 : Piterwilson 응답으로 전체 답을 가지고 있음을

편집 2 : 추가의 Obj-C 코드

주의 사항 : 필자는 Mac에 없기 때문에 코드에 약간의 오류가있을 수 있지만 원칙은 동일하게 유지됩니다

+0

나는 objective-c 언어를 사용합니다. –

+0

이것은 신속하고 잠시만 기다려주세요. obj-C를 포함하도록 답을 수정하겠습니다 –

+0

코드를 보여줄 수 있습니까? –

2

질문은 위임자와 데이터 소스를 사용하여 UITableView를 매우 간단하게 구현 한 것입니다.

실제 설명은 약간 길기 때문에 원하는 내용과 매우 유사한 것을 수행하는 응용 프로그램의 자습서가 있습니다.

http://www.appcoda.com/ios-programming-index-list-uitableview/

+0

그 부분은 제가 필요로하지만 어떻게 알파 화 순서로 배열을 나눌 수 있는지 설명하지 않습니다 A부터 Z까지 –