【发布时间】:2018-03-30 17:10:32
【问题描述】:
var terms = [Privacy(), Search(), Stores()]
每个类都有自己的 trackScreen()、trackBanners() 等实现,
目前在具有调用这些类的 trackScreen() 等实现的函数的类中,
func trackScreen(screenName: String) {
for term in terms {
term.trackScreen(screenName)
}
}
func trackBanner(banner: UIImage) {
for term in terms {
term.trackBanner(banner)
}
}
如何不为每个函数重复“for term in terms”,但仍然让每个术语调用自己的这些方法的实现?
【问题讨论】:
-
将
foreground/background/launch部分作为单个“跟踪应用事件”函数的参数 -
@Alexander 你能举例说明如何在这里发送一个方法作为参数吗?
-
这里显示的函数没有结果;那么“在每个函数中使用结果”是什么意思?调用代码是什么样的,您希望它是什么样的?实现这一循环的明显方法是使其成为一个调用
.trackAppforegroud(); .trackAppBackground(); .trakAppLaunch()的循环。那不是你想做的吗? -
@jayn 我不知道您实际上想要实现什么,因此很难制定解决方案。什么是期限?正在跟踪什么?是否以各种方式跟踪所有条款?这甚至意味着什么?
-
@Alexander Terms 是一个跟踪术语数组,每个跟踪术语都有自己的 trackAppForeground() 等实现,