Поскольку проблема возникает, когда вызывает метод openOrDownloadPlayPortal
как:
openApp.openOrDownloadPlayPortal(delegate: self)
Вы столкнетесь с упомянутой ошибкой:
Общий параметр 'T 'не может быть выведено
, если ваш класс не соответствует SKStoreProductViewControllerDelegate
.Например, предположим, что вы вызываете его в ViewController
классе, как:
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
openApp.openOrDownloadPlayPortal(delegate: self)
}
}
Итак, вы должны убедиться, что ViewController
имеет:
extension ViewController: SKStoreProductViewControllerDelegate {
// ...
}
Причина ошибки: компилятор предполагает, что параметр T
в методе openOrDownloadPlayPortal
должен соответствовать SKStoreProductViewControllerDelegate
, поэтому реализация
openApp.openOrDownloadPlayPortal(delegate: self)
означает, что он не будет распознан как соответствующий.введите T
, если только вы не сделаете self
(ViewController
в приведенном выше примере) соответствующим SKStoreProductViewControllerDelegate
.