【问题标题】:Functional programming syntax in Swift [duplicate]Swift 中的函数式编程语法
【发布时间】:2017-01-19 21:07:00
【问题描述】:

我知道有一种“更好”的方法可以得到我想要的这个项目,但我对 Swift 的函数式编程语法还不够熟练。

我有一组东西,它们每个都有一个属性,我想在该属性上找到带有1 标签的那个。

var homeController : UIViewController?
for vc in (tabBarController?.viewControllers)! {
  if vc.tabBarItem.tag == 1 {
    homeController = vc
  }
}

你有什么更简洁的方法来“给我标签栏项目标记为 1 的视图控制器”?

【问题讨论】:

  • 尤其是very bottom answer使用first(where:)。虽然请注意,您的循环(我怀疑是无意的)实际上获取了满足条件的最后一个元素(如果有意,您可以使用reversed() 来实现这一点)。
  • @Hamish 谢谢。我允许不充分,假设只有一个正确答案并且知道列表很短。

标签: swift functional-programming


【解决方案1】:

一个班轮是:

let homeController: UIViewController? = tabBarController?.viewControllers?.first(where: ({$0.tabBarItem.tag == 1}))

【讨论】:

  • 这正是我一直在寻找但找不到的东西。谢谢。我觉得我正试图在字典中查找正确的拼写。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-04
  • 2016-04-10
  • 1970-01-01
  • 2015-04-30
相关资源
最近更新 更多