1

I am searching into a UITableView using this:

titles = [NSArray arrayWithArray:[datamanager titlesForEntriesBetween:(NSInteger)[slider minSelectedValue] and:(NSInteger)[slider maxSelectedValue]containing:searchText]];

How can I encode array value with NSASCIIStringEncoding during the search process?

(Array contains "tête" for example.. and when I search "tete" nothing matches.. so I will encode array value just for my search)

4

1 に答える 1

1

3 番目のパラメーターを datamanager 関数に変更します。

- (NSArray*)titlesForEntriesBetween:(NSInteger)startIndex
  and:(NSInteger)stopIndex
  withFunction:(BOOL(^)(NSString*))block {
  NSMutableArray *retVal = [NSMutableArray array];
  for(NSInteger i = startIndex; i <= stopIndex; ++i) {
    NSString *string = [array_ objectAtIndex:i];
    if (block(string)) {
      [retVal insertObject:string];
    }
  }
  return retVal;
}

そして、次のように関数を呼び出します。

titles = [datamanager titlesForEntriesBetween:(NSInteger)[slider minSelectedValue] and:(NSInteger)[slider maxSelectedValue] withFunction:^(BOOL)(NSString *str) {
  NSData *data = [str dataUsingEncoding:NSASCIIStringEncoding];
  NSString *simpleString = [[[NSString alloc] initWithData:data usingEncoding: NSASCIIStringEncoding] autorelease];
  return [simpleString isEqualToString:str];
}]];

注:これを入力しただけで、これをコンパイル/実行しようとはしていません。

于 2012-11-20T15:21:17.290 に答える