2011-04-14 1 views
0

두 개의 NSMutableArrays가 있습니다. 이름 및 이름 ID 내 tableview에서 이름 만 textLabel로 표시됩니다.두 개의 NSMutableArrays를 연결하고 UISearchBar와 함께 사용

UISearchBar를 사용하여 이름을 검색하고 싶습니다. 예를 들어;

name -- nameID 
    Stack   123 
    Over   -1 

nameID는 사용해야하는 주요 사항입니다.

이렇게 두 개의 NSMutableArrays를 연결하면 사용자가 Stack을 선택할 때마다 123이 표시됩니다.

감사

답변

0

어떻게 값으로 키와 IDS와 같은 이름을 가진 하나의 NSMutableDictionary 사용에 대한?

테이블에서 데이터 배열은 [myNameDict allKeys]을 사용하여 찾을 수 있습니다.

또는 id를 키로 만들 수 있으며 값의 이름을 지정할 수 있습니다.이 경우 모든 이름은 [myNameDict allValues]을 호출하여 배열로 액세스 할 수 있습니다.

allKeysallValues은 순서가 보장되지 않는 반환 배열을 명심하십시오.

따라서 세 번째 옵션으로 각 사전에 이름과 ID라는 두 개의 키, 이름 및 ID가있는 사전 배열을 유지 관리 할 수 ​​있습니다. 그런 다음 각 이름과 ID를 하나의 객체 (사전)로 짝을 지어 이름/ID 쌍의 배열 순서를 확인할 수 있습니다.

0

하나의 접근 방식은 데이터를 별도로 유지 관리하지 않고 관계를 맺을 수 있으므로 클래스및 id의 두 필드가있는 Record이라는 클래스에 캡슐화 할 수 있습니다. 이제이 객체의 배열을 유지합니다 (예 : recordList).

주어진 searchText으로 Record을 검색 할 수있는 경우는 다음과 같습니다.

-(Record *) searchRecordWithName:(NSString *)searchText 
{ 
Record *tempRecord; 
    for(tempRecord in recordList) 
    { 
    NSRange searchRange = [tempRecord.name rangeOfString:searchText options:NSCaseInsensitiveSearch]; 
    if(searchRange.length>0 && searchRange.location==0) 
     { 
     break; 
     } 
    } 
return tempRecord; 
} 

필요에 따라 위 코드를 수정하십시오. 여기에 당신이 검색 이름으로 시작하는 record의 이름을 찾고 싶다고 생각하고 있습니다. (내가 보았 듯이 searchRange.location == 0`을 사용했습니다.)

나중에 더 쉽게 Record보다 자세한 내용을 저장해야한다고 가정합니다.

0

쉽게 찾을 수있는 한 가지 방법은 string (name #nameID)을 조인하고 그 후에 nameID를 다시 얻는 것입니다.