如何在Swift中访问目标C类扩展

时间:2019-02-19 03:49:29

标签: objective-c swift class-extensions

我之前写过许多 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代码” 。请理解我的问题。

0 个答案:

没有答案