我不确定为什么我会收到此错误,UITouchData
是什么?
我使用以下方法合并两个日期(日期和时间)。
- (NSDate *)combineDate:(NSDate *)date withTime:(NSDate *)time {
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
//crash at next line
unsigned unitFlagsDate = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit;
NSDateComponents *dateComponents = [gregorian components:unitFlagsDate fromDate:date];
unsigned unitFlagsTime = NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *timeComponents = [gregorian components:unitFlagsTime fromDate:time];
[dateComponents setSecond:[timeComponents second]];
[dateComponents setHour:[timeComponents hour]];
[dateComponents setMinute:[timeComponents minute]];
NSDate *combDate = [gregorian dateFromComponents:dateComponents];
return combDate;
}
N.B。顺便说一句,我仔细检查了一下,我传递了日期和时间日期对象。
更新
我使用UIButton
子类将选定的日期存储到其中,就像这样,
#import <UIKit/UIKit.h>
@interface TapButton : UIButton
@property (nonatomic, assign) NSDate *referenceDate;
@end
在存储日期时,我这样做,
TapButton *btnStartDate = [TapButton buttonWithType:UIButtonTypeCustom];
btnStartDate.referenceDate = _datePicker.date;
如果我将鼠标悬停在它上面,它会显示出来,
但是当我打印它时,会记录下来,
&lt; __ NSArrayM 0xe574340&gt;(
)
显而易见,现在错误消息已更改为此,
-[__NSArrayM timeIntervalSinceReferenceDate]: unrecognized selector sent to instance
我做错了什么?
答案 0 :(得分:0)
有时你犯了真的 愚蠢 错误..! =)
错:
@interface TapButton : UIButton
@property (nonatomic, assign) NSDate *referenceDate;
@end
正确:
@interface TapButton : UIButton
@property (nonatomic, strong) NSDate *referenceDate;
@end
应指定非指针对象,其中指针对象应保留,因此在这种情况下,它应该是强。谢谢@Birju。
答案 1 :(得分:0)
检查你的对象是否真的是NSDate(而不是NSArray)!