我正在尝试在我的 iOS 项目中快速实现 Native Express Ads。
首先我有一堂课
class Events {
var _eventName: String!
var _realDate: Date!
var realDate: Date {
if _realDate == nil {
_realDate = nil
}
return _realDate
}
var eventName: String {
if _eventName == nil {
_eventName = ""
}
return _eventName
}
//...
}
哪个类从 Internet 获取 JSON 并填写表格视图。我也有一些功能,比如搜索事件的名称,还有一个按日期过滤事件的按钮。所有这些都可以使用下面的代码正常工作
var eventData = [Events]()
var filteredEvents = [Events]()
eventData.sort() { $0.realDate < $1.realDate }
func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
filteredEvents = eventData.filter { events in
return events.eventName.lowercased().contains(searchText.lowercased())
}
首先我改变了
var eventData = [Events]()
var filteredEvents = [Events]()
至
var eventData = [AnyObject]()
var filteredEvents = [AnyObject]()
所以广告可以附加到数组中,如下面的函数所示addNativeExpressAds()
!我对函数sort()
和filter
.
因为sort()
它说Value of type 'AnyObject' has no member 'realDate'
因为filter
它说Value of type 'AnyObject' has no member 'eventName'
更新 1. 在对谷歌进行一些研究后,我发现这可能是sort()
功能的解决方案
eventData.sort() { (($0 as! Events).realDate ) < ($1 as! Events).realDate }
虽然eventData
数组还包括GADNativeExpressAdView
,因为在我上面链接的示例中,有这个代码块下载快速原生广告并将它们附加到AnyObject
数组,eventData
见下文
func addNativeExpressAds() {
var index = adInterval
// Ensure subview layout has been performed before accessing subview sizes.
nearMeTable.layoutIfNeeded()
while index < eventData.count {
let adSize = GADAdSizeFromCGSize(
CGSize(width: nearMeTable.contentSize.width, height: adViewHeight))
guard let adView = GADNativeExpressAdView(adSize: adSize) else {
print("GADNativeExpressAdView failed to initialize at index \(index)")
return
}
adView.adUnitID = adUnitID
adView.rootViewController = self
adView.delegate = self
eventData.insert(adView, at: index) //here it inserts the ads
adsToLoad.append(adView)
loadStateForAds[adView] = false
index += adInterval
}
}
通过这个我得到了错误
Could not cast value of type 'GADNativeExpressAdView' (0x10046ebd8) to 'Events_Near_Me.Events' (0x10046fb90).
所以我无法对任何对象的数组进行排序,导致GADNativeExpressAdView
我的数组中出现广告。
对这个有任何想法吗?