我有以下代码,我在其中比较两个字符串但抛出异常。
- (void)calendarMonthView:(TKCalendarMonthView *)monthView didSelectDate:(NSDate *)d {
NSLog(@"calendarMonthView didSelectDate %@",d);
//[self papulateTable];
//[table reloadData];
//[self performSelector:@selector(papulateTable) withObject:nil afterDelay:1.0];
NSString *tempDate = (NSString*)d;
NSString *selectedDate = @"2013-02-04 00:00:00 +0000";
if([tempDate isEqualToString:selectedDate])
{
flagtoCheckSelectedCalendarDate = 1;
}
if(flagtoCheckSelectedCalendarDate == 1)
{
[self viewDidLoad];
}
if(flagtoCheckSelectedCalendarDate == 2)
{
[self viewDidLoad];
}
//[table reloadData];
谁能推荐一下。谢谢。
最佳答案
将 NSDate
对象转换为 NSString
不会使其成为字符串。要比较日期,您必须使用 NSDateFormatter
将 NSString
转换为 NSDate
。之后,您可以使用 NSDate 的实例方法 isEqualToDate:
进行比较。
NSString *selectedDate = @"2013-02-04 00:00:00 +0000";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"UTC"]];
[dateFormatter setDateFormat:@"yyyy-MM-DD hh:mm:ss ZZZZ"];
NSDate *actualDate = [dateFormatter dateFromString:selectedDate];
if ([actualDate isEqualToDate:d]) {
...
}
关于iphone - NSString 比较抛出异常 SIGABT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14644329/