什么应该是范围的返回类型:范围还是NSRange?

时间:2018-04-17 05:10:00

标签: ios swift string range swift4

我正在使用swift 4,这个代码片段在初始化 n1 变量时抛出了一个错误:

 func caseInsensitiveSearch(searchString: String) -> NSRange?  {
        if let range = self.range(of: searchString, options: .caseInsensitive),
            let n1 = NSRange(range, in: self) {
                return n1
        }
        return nil
    }

我可以直接传递范围吗?或者有必要将其转换为 NSRange

任何想法??

1 个答案:

答案 0 :(得分:0)

这是因为你试图取消绑定非可选值,你可以直接返回它:

func caseInsensitiveSearch(searchString: String) -> NSRange?  {
        if let range = self.range(of: searchString, options: .caseInsensitive) {
                return  NSRange(range, in: self)
        }
        return nil
    }