我有一个使用以下方法的 NSDate 类别
@implementation NSDate (DateUtility)
+(NSString *)dateTimeStringForDB {
NSDateFormatter *dateFormatForDB = [[NSDateFormatter alloc] init];
[dateFormatForDB setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *aDateStr= [dateFormatForDB stringFromDate:self];
[dateFormatForDB release];
return aDateStr;
}
@end
有了这个定义,我收到了警告。
不兼容的指针类型将“类”发送到“NSDate *”类型的参数
但是,在将其分配为参数之前键入转换 self 会抑制此警告。
+(NSString *)dateTimeStringForDB
{
NSDateFormatter *dateFormatForDB = [[NSDateFormatter alloc] init];
[dateFormatForDB setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *aDateStr= [dateFormatForDB stringFromDate:(NSDate*)self];
[dateFormatForDB release];
return aDateStr;
}
我们真的不能在不进行类型转换的情况下将 self 作为参数传递给类别吗?这个特性依赖于什么,编译器?在实际将其作为问题发布之前寻找答案我遇到了这个,但是我仍然不清楚幕后发生了什么。