我之前写过许多 Class Extensions ,例如:
我的头文件NSDate + convenience.h:
@interface NSDate (Convenience)
+ (NSDate *)dateFromMyString:(NSString *)dateString
withDateFormatStr:(NSString *)dateFormatStr;
@end
我的Obj-C实现文件NSDate + convenience.m:
@implementation NSDate (Convenience)
+ (NSDate *)dateFromMyString:(NSString *)dateString
withDateFormatStr:(NSString *)dateFormatStr {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setLocale:[NSLocale currentLocale]];
[formatter setTimeZone:[NSTimeZone localTimeZone]];
[formatter setDateFormat:dateFormatStr];
return [formatter dateFromString:dateString];
}
@end
我通过以下方式在目标c中使用我的NSDate类扩展:
[NSDate dateFromMyString:[NSDate date] withDateFormatStr:@"yyyyMMdd-HHmmss-SSS"]
但是当想在Swift中使用它时:
NSDate.dateFromMyString(dateString: dateStr, DateFormatStr: "yyyyMMdd-HHmmss-SSS")
或
NSDate.dateFromMyString(bla bla bla ...)
无论如何,NSDate没有像'dateFromMyString'这样的成员,我有很多以前写过的类扩展。我是否需要再次在Swift中实现这些类扩展。
我必须强调这一点,我可以在Swift中使用自定义的常规Obj-C类属性和方法,但不能使用作为Obj扩展名的obj-C文件-C。 所以请不要给我一个链接“如何从Swift调用Objective-C代码” 。请理解我的问题。