xcode 如何找到项目中所有使用了重写~=的地方?

ppcbkaq5  于 2023-04-13  发布在  其他
关注(0)|答案(1)|浏览(104)
extension String {
    static func ~= (lhs: String, rhs: String) -> Bool {
        guard let regex = try? NSRegularExpression(pattern: rhs) else { return false }
        let range = NSRange(location: 0, length: lhs.utf16.count)
        return regex.firstMatch(in: lhs, options: [], range: range) != nil
    }
}

我想不出一种方法来找到项目中使用这个重写函数的所有地方。
Cmd+Ctrl+Shift+H在这种情况下由于某种原因不起作用。
你可以说:“只需在代码库中搜索~=符号”。
但是~=也***隐式地***用于switch-case运算符的求值。
使用案例:
假设我想改变~=函数的逻辑(我真的这么做了)。而且我很确定,我还必须在使用这个函数的地方修复代码。所以我需要找到所有使用它的switch-cases。否则这些switch-cases将无法正常工作(编译器不会显示任何警告)。
附注
作为解决方案的示例:在代码库中搜索所有的switch外观,并且在其中只查找switch String/case String。这正是我所需要的。
这种方法的唯一问题是:这将花费我几个小时(如果不是几天的话)🤣

jdzmm42g

jdzmm42g1#

如果你不赞成覆盖呢?那么你只需要查看你的编译器警告。

extension String {
    @available(*, deprecated, message: "Found it")
    static func ~= (lhs: String, rhs: String) -> Bool {
        guard let regex = try? NSRegularExpression(pattern: rhs) else { return false }
        let range = NSRange(location: 0, length: lhs.utf16.count)
        return regex.firstMatch(in: lhs, options: [], range: range) != nil
    }
}

相关问题