【发布时间】:2019-07-07 19:18:40
【问题描述】:
我在 tvOS 中使用 GoolgeInteractiveMediaAds 框架。在这个过程的最开始,我从代表那里得到一个错误,上面写着:Error loading ads: nil。我还加载了用 Objective C 编写的示例 Google 项目,它运行时没有错误。在这个阶段几乎没有代码,我比较了这两个项目,发现在AppDelegate 和Info.plist 方面没有任何区别(唯一的区别是 Swift 项目从情节提要开始)。
以下是代码的总和。当运行setUpAdsLoader 时,会立即命中您在底部看到的错误委托。将他们的示例 Objective C 项目缩减为仅这些行,不会产生此错误。
import UIKit
import GoogleInteractiveMediaAds
class ViewController: UIViewController, IMAAdsLoaderDelegate {
private var adsLoader: IMAAdsLoader?
override func viewDidLoad() {
super.viewDidLoad()
setUpAdsLoader()
}
func setUpAdsLoader() {
self.adsLoader = IMAAdsLoader(settings: nil)
self.adsLoader!.delegate = self
}
func adsLoader(_ loader: IMAAdsLoader!, adsLoadedWith adsLoadedData: IMAAdsLoadedData!) {
// Grab the instance of the IMAAdsManager and set ourselves as the delegate
//adsManager = adsLoadedData.adsManager
//adsManager!.delegate = self
// Create ads rendering settings and tell the SDK to use the in-app browser.
let adsRenderingSettings = IMAAdsRenderingSettings()
adsRenderingSettings.webOpenerPresentingController = self
// Initialize the ads manager.
//adsManager!.initialize(with: adsRenderingSettings)
}
func adsLoader(_ loader: IMAAdsLoader!, failedWith adErrorData: IMAAdLoadingErrorData!) {
print("Error loading ads: \(String(describing: adErrorData.adError.message))")
}
}
更新:我创建了相同的测试项目,但这次使用的是 Objective C。工作没有错误。很难相信问题出在语言上,但我想知道这两种语言之间是否存在任何 Xcode 设置差异会导致这种情况?
【问题讨论】:
标签: swift tvos google-ima