Как получить доступ к расширению класса c в Swift - PullRequest
0 голосов
/ 19 февраля 2019

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

Мой файл заголовка, 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, но я могу 't использовать файл obj-C, который является расширением Obj-C. Поэтому, пожалуйста, не давайте мне ссылку «Как вызвать код Objective-C из Swift» .Пожалуйста поймите мой вопрос.

...