к объявлению каждого расширения Swift.

ько что закончил обновление смешанного языкового проекта (target-c и Swift) с Swift 3 на Swift 4.

Казалось, все прошло хорошо, за исключением того, что все мои расширения Swift больше не доступны в target-c. Я не могу понять, как получитьЛюбые Быстрое расширение, чтобы показать в объективе-c. Я попытался выполнить поиск, но не могу найти упоминаний об изменениях расширений в Swift 4, за исключением ослабленияprivate объем.

Все эти расширения были доступны из Objective-c в Swift 3, поэтому нет несовместимых типов (структур или не-сырых перечислений).Расширения помечены как публичные.Расширения являются частью той же цели и в том же проекте, что и файлы target-c.Да, я импортировал «ProjectName-Swift.h» в соответствующие файлы target-c.Другие совместимые классы Swiftделать объявиться. Кажется, только расширения отсутствуют.Я пытался пометить каждыйfunc общественность также.

Например, когда я использовал Swift 3, для кода Objective-C раньше было доступно следующее расширение:

public extension UIAlertController {

  class func alert(_ title: String? = nil, message: String? = nil) -> UIAlertController {
    return UIAlertController(title: title, message: message, preferredStyle: .alert)
  }

  @discardableResult func action(_ action: String) -> UIAlertController {
    self.addAction(UIAlertAction(title: action, style: .default, handler: nil))
    return self
  }

  @discardableResult func action(_ action: String, style: UIAlertActionStyle = .default, onSelected: ((UIAlertAction) -> Void)? = nil) -> UIAlertController {
    self.addAction(UIAlertAction(title: action, style: style, handler: onSelected))
    return self
  }

  @discardableResult func cancel(_ action: String? = "Cancel", onCancel: ((UIAlertAction) -> Void)? = nil) -> UIAlertController {
    self.addAction(UIAlertAction(title: action, style: .cancel, handler: { alert in
      onCancel?(alert)
    }))
    return self
  }

  @discardableResult func destructive(_ action: String, onDestruct: @escaping ((UIAlertAction) -> Void)) -> UIAlertController {
    self.addAction(UIAlertAction(title: action, style: .destructive, handler: { action in
      onDestruct(action)
    }))
    return self
  }

  func presentOn(_ viewController: UIViewController, animated: Bool = true) {
    viewController.present(self, animated: animated, completion: nil)
  }
}

Ответы на вопрос(1)

Ваш ответ на вопрос