2011-08-17 1 views
0

私は1つのアプリケーションを開発しています。その中で私は検索のための検索バーを使用します。しかし、私の検索は時間に基づいて実行されます。どのように時間に基づいてデータを検索するためのコードを記述する。以下のようなコードです。私は、検索用のコードにtime.Butに基づいてデータを書き込んだコメントで上記のコードで時間に基づいてデータを区別するために検索バーを使用するにはどうすればよいですか?

NSRange namerange=[databasefield.name rangeOfString:srchbar.text options:NSCaseInsensitiveSearch]; 
    NSRange adrsrange=[databasefield.address rangeOfString:srchbar.text options:NSCaseInsensitiveSearch]; 
    //NSRange timerange=[databasefield.insert_datetime rangeOfString:srchbar.text options:NSCaseInsensitiveSearch]; 

    if ((namerange.length>0)||(adrsrange.length>0)) 
    { 
     [copydata addObject:databasefield]; 
    } 

それはerror.Soを与える、このいずれかを取得する方法を教えてください。

+0

あなたが時間に基づいて検索することで、正確に何を意味するのですか?タイムスタンプを「2012年12月12日」のように表示していて、ユーザーが検索バーにこれらの文字を入力したときに検索したいのですか? – Akshay

答えて

0

私が正しくあなたの問題を理解していれば、あなたはここのようにそれを行うことができます。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateStyle:NSDateFormatterNoStyle]; 
[dateFormatter setTimeStyle:NSDateFormatterShortStyle]; 
NSDate *searchDate = [dateFormatter dateFromString:srchbar.text]; 
[dateFormatter release]; 

for (int i = 0; i < [self.data count]; i++) { 
    NSDate *date = [self.data objectAtIndex:i]; 
    NSInteger result = [self compareTwoTimes:date date2:searchDate]; 

    if (result == NSOrderedSame) 
      [self.filteredArray addObject:[self.data objectAtIndex:i]]; 
} 

+ (NSInteger) compareTwoTimes:(NSDate *) date1 date2:(NSDate *) date2 
{ 
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
    [dateFormat setDateFormat:@"HH:mm:ss"]; 

    NSString *dateString1 = [dateFormat stringFromDate:date1]; 
    NSString *dateString2 = [dateFormat stringFromDate:date2]; 

    NSDate *d1 = [dateFormat dateFromString:dateString1]; 
    NSDate *d2 = [dateFormat dateFromString:dateString2]; 

    [dateFormat release]; 

    return [d1 compare:d2]; 
} 
関連する問題