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