2015-01-19 2 views
1

죄송합니다.하지만 이것에 관해서는 매우 새롭습니다. 안녕 난 아래와 같은 데이터를 포함하는 NSMutableArray 있습니다 다중 객체의 UITableVewController에서 필터하기

{ 
Code = MCP3441G; 
"Needle Description" = "1/2 Circle Round Body MH"; 
"Needle Dimension" = "31 MM"; 
"No. of foils per box" = 12; 
"Per box maximum retail price" = 7440; 
"Per box price to retailers & hospitals" = 5474; 
Size = "2/0"; 
"Suture type and length" = "MONOCRYL monofilament 70 CM Violet"; 
nid = 86; 
}, 
{ 
Code = NW1641; 
"Needle Description" = "1/2 Circle Round Body"; 
"Needle Dimension" = "30 MM"; 
"No. of foils per box" = 12; 
"Per box maximum retail price" = 4800; 
"Per box price to retailers & hospitals" = 3510; 
Size = "2/0 Only"; 
"Suture type and length" = "MONOCRYL Undyed Monofilament 70 CM"; 
nid = 86; 
}, 
{ 
Code = NW1642; 
"Needle Description" = "1/2 Circle Round Body"; 
"Needle Dimension" = "30 MM"; 
"No. of foils per box" = 12; 
"Per box maximum retail price" = 4800; 
"Per box price to retailers & hospitals" = 3510; 
Size = "1/0"; 
"Suture type and length" = "MONOCRYL Undyed Monofilament 70 CM"; 
nid = 86; 
}, 
{ 
Code = NW1648; 
"Needle Description" = "3/8 Circle Round Body"; 
"Needle Dimension" = "16 MM"; 
"No. of foils per box" = 12; 
"Per box maximum retail price" = 3600; 
"Per box price to retailers & hospitals" = 2687; 
Size = "4/0"; 
"Suture type and length" = "MONOCRYL Undyed Monofilament 70 cm"; 
nid = 86; 
}, 

가 지금은 검색을 기반으로 객체를 필터링 할. 예를 들어, 내가 입력 할 경우 NW1648 그래서 마지막 객체 만 표시되어야합니다. 의미 내가 섹션

#pragma Search Method 
-(void)filterContentForSearchText:(NSString *)searchText scope:(NSString*)scope{ 
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF beginswith[c] %@",searchText]; 
    searchedData = [self->datas filteredArrayUsingPredicate:predicate]; 
} 

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString{ 
    [self filterContentForSearchText:searchString scope:[[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]] ]; 
    return YES; 
} 

이에 제발 도와주세요 : 아래

{ 
Code = NW1648; 
"Needle Description" = "3/8 Circle Round Body"; 
"Needle Dimension" = "16 MM"; 
"No. of foils per box" = 12; 
"Per box maximum retail price" = 3600; 
"Per box price to retailers & hospitals" = 2687; 
Size = "4/0"; 
"Suture type and length" = "MONOCRYL Undyed Monofilament 70 cm"; 
nid = 86; 
}, 

은 내가 데이터를 필터링하는 데 사용하고 방법이다. 미리 감사드립니다.

업데이트 # 1 : 여기에 내가 NSMutableArray

[data addObject:resultantDataObject]; 

업데이트 # 2이 NSMutableDictionary를 추가하고

I am storing below data in `NSMutableDictionary` like below: 



    { 
Code = NW1648; 
"Needle Description" = "3/8 Circle Round Body"; 
"Needle Dimension" = "16 MM"; 
"No. of foils per box" = 12; 
"Per box maximum retail price" = 3600; 
"Per box price to retailers & hospitals" = 2687; 
Size = "4/0"; 
"Suture type and length" = "MONOCRYL Undyed Monofilament 70 cm"; 
nid = 86; 
}, 

NSMutableDictionary *resultantDataObject = [[NSMutableDictionary alloc]init]; 
    [resultantDataObject setObject:[val valueForKey:CODE_ID] forKey:SKU_CODE]; 
    [resultantDataObject setObject:[val valueForKey:CODE_NEEDLE_DESC] forKey:NEEDLE_DESCRIPTION]; 
    [resultantDataObject setObject:[val valueForKey:CODE_NEEDLE_DIMENSION] forKey:NEEDLE_DIMENSION]; 
    [resultantDataObject setObject:[val valueForKey:CODE_SUTURE] forKey:SUTURE_TYPE]; 
    [resultantDataObject setObject:[val valueForKey:CODE_SIZE] forKey:SIZE]; 
    [resultantDataObject setObject:[val valueForKey:CODE_FOILS] forKey:FOILS_PER_BOXEX]; 
    [resultantDataObject setObject:[val valueForKey:CODE_RETAILS_HOSPITAL] forKey:HOSPITAL_PRICE]; 
    [resultantDataObject setObject:[val valueForKey:CODE_MAX_RETAIL] forKey:MAXIMUM_RETAILS]; 

: 지금은 무엇을 기준으로 검색 할 개체를 원하는 내가 한 그는 유형 및 만약 그가 즉 그는 34 Mono 입력 그래서 모든 키에서 이것을 검색하고 싶습니다 s 및 34는 임의의 키에있을 수 있고 모든 키에서 모노로 다시 검색하고 두 키워드가있는 값을 필터링 할 수 있습니다.

+0

** 자기> datas **이 ** 배열 ** 또는 ** 사전 ** 필터가 쉬운 경우 –

+0

@ Anbu.Karthik 그것의'MutableArray'는'NSMutableDictionary ' – user3154663

+0

k는'NSMUtableDictionary' 이름, bz u 찾기/에 코드 검색 그런데, 결과를 가져 오는 것은 쉽습니다. –

답변

0

이 시도 :이 도움이

NSArray *filteredArr = [data filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(Code == %@)", searchText]]; 
NSLog(@"%@",filteredArr); 

희망을 .. :)

을 더 키 할이 추가하려면 :

NSArray *filteredArr = [data filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"(Code == %@) AND (Needle Description == %@) AND (Needle Dimension == %@)", searchText,needleDescription, needleDimentsion]]; 
+0

모든 필드에 필터가 필요합니다. – user3154663

+0

@ User3154663> 그런 다음 술어에 추가하십시오. :) – Rashad

+0

@ user3154663> 내 편집을 참조하십시오. :) – Rashad