Как получить доступ к расширению класса c в Swift

У меня было много расширений классов, написанных ранее, например:

Мой заголовочный файл, NSDate+comfort.h:

@interface NSDate (Convenience)
+ (NSDate *)dateFromMyString:(NSString *)dateString 
           withDateFormatStr:(NSString *)dateFormatStr;
@end

Мой файл реализации Obj-C, NSDate+comfort.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

Я использую расширение класса NSDate в цели c:

[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.

Я должен подчеркнуть, что я могу использовать свои обычные свойства и методы классов Obj-C в Swift, но я не могу использовать файл obj-C, который является расширением Obj-C. Поэтому, пожалуйста, не давайте мне ссылку "Как вызвать код Objective-C из Swift". Пожалуйста, поймите мой вопрос.

0 ответов

Другие вопросы по тегам