gpt4 book ai didi

swift - 搜索与特定类型匹配的对象

转载 作者:行者123 更新时间:2023-11-28 08:34:19 24 4
gpt4 key购买 nike

我有一个 NSViewController 扩展,它遍历其所有后代 subview Controller ,寻找第一个通过特定测试(由用户定义的 block 指定)的 View Controller :

extension NSViewController {

func descendantViewControllerPassingTest(test: (viewController: NSViewController) -> Bool) -> NSViewController? {
var retval: NSViewController?
for childViewController in childViewControllers {
if test(viewController: childViewController) {
retval = childViewController
} else if let descendantViewController = viewController.descendantViewControllerPassingTest(test) {
retval = descendantViewController
}
if retval != nil { break }
}
return retval
}
}

99% 的时间我的测试包括一个简单的类型检查...

contentViewController.descendantViewControllerPassingTest {$0 is OutlineViewController}

...所以我想创建一个简短的便利扩展来执行此操作:

extension NSViewController {
func descendantViewControllerMatchingType(type: WHAT_HERE?) {
return descendantViewControllerPassingTest({ $0 is WHAT_HERE? })
}
}

但我不知道我的参数type 应该是什么type。我试过 AnyClassAnyObject 但编译器告诉我这些不是类型:

enter image description here

最佳答案

Closures是我会用的。将您的对象传递给返回类型为 BOOL 的闭包。使用闭包以递归方式匹配您的后代。

关于swift - 搜索与特定类型匹配的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38223485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com