Iphone 如何使用搜索栏根据时间区分数据?

Iphone 如何使用搜索栏根据时间区分数据?,iphone,Iphone,我正在开发一个应用程序。我使用搜索栏来搜索数据。但我的搜索是基于时间执行的。因此,如何编写基于时间搜索数据的代码。对于普通字符串搜索,我编写如下代码 NSRange namerange=[databasefield.name rangeOfString:srchbar.text options:NSCaseInsensitiveSearch]; NSRange adrsrange=[databasefield.address rangeOfString:srchbar.text

我正在开发一个应用程序。我使用搜索栏来搜索数据。但我的搜索是基于时间执行的。因此,如何编写基于时间搜索数据的代码。对于普通字符串搜索,我编写如下代码

    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];
    }

在上面注释中的代码中,我编写了基于时间搜索数据的代码。但它给出了错误。因此,请告诉我如何获取此代码。

如果我正确理解您的问题,您可以如下所示:

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]];
 }

你所说的基于时间的搜索到底是什么意思?您是否在某处显示时间戳,例如“2012年12月12日”&当用户在搜索栏中输入这些字符时,是否要进行搜索?
+ (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];
}