2012-02-27 2 views
0

설정NSMutableDictionary에서 데이터를 끌어 당기면서 직원을 대표하는 800여 NSMutableDictionaries와 다른 NSMutableDictionary

내가 가진에 NSMutableDictionary를 추가. 검색 창을 구현하려고하는데 사전에 대한 작업에 심각한 문제가 있습니다.

첫 번째 For 루프에서 cread는 검색 용 사전이고 send는 해당 사전의 각 직원을 검색하려고 시도합니다.

문제 난 거기에 검색어와 모든 사전을 보유 할 새 사전에 개인 사전을 추가 할 수있는 방법

? 두 번째 for 루프에서

- (void) searchTableView:(UISearchBar *)theSearchBar { 

NSString *searchText = theSearchBar.text; 
NSMutableDictionary *searchDict = [[NSMutableDictionary alloc] init]; 

for (NSDictionary *employee in employeeData) 
{ 
    [searchDict setValue:employee forKey:[employee objectForKey:kFULLNAME_TAG]]; 
} 

for (NSDictionary *emp in searchDict) 
{ 
    NSString *empName = [emp objectForKey:kFULLNAME_TAG]; 
    NSRange titleResultsRange = [empName rangeOfString:searchText options:NSCaseInsensitiveSearch]; 

    if (titleResultsRange.length > 0){ 
     NSLog(@"search result ---> %@" ,emp); 
     [copyListOfItems setValue:empName forKey:emp]; 
    } 
} 
} 

, 나는 copyListOfItems의 setValue에 문제가 있어요 : empName forKey을 : EMP를.

답변

1

copyListOfItems (클래스의 NSMutableDictionary ivar라고 가정하고 있습니다.)에 삽입 할 때 매개 변수가 거꾸로 있다고 생각합니다. employee 오브젝트는 값이어야하며 employee 이름은 키 여야합니다.

[copyListOfItems setValue:emp forKey:empName]; 

필요한 것을 수행하려면 두 개의 루프를 사용할 필요가 없습니다. 이것은 더 간단 할 것입니다 :

for (NSDictionary *emp in employeeData) 
{ 
    NSString *empName = [emp objectForKey:kFULLNAME_TAG]; 
    NSRange titleResultsRange = [empName rangeOfString:searchText options:NSCaseInsensitiveSearch]; 

    if (titleResultsRange.location != NSNotFound){ 
     [copyListOfItems setValue:emp forKey:empName]; 
    } 
} 
+0

아픈 그것을 시도하고 어떻게 가는지, 감사합니다 – zach

관련 문제