NSCaseInsensitiveSearch RangeOfString搜索Swift

时间:2015-05-15 14:07:46

标签: ios objective-c swift

我正在尝试在swift中编写以下代码,但无法这样做:

目标 - C:

NSArray * seachArray = [sessionSearchResults filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(ProductModel* evaluatedObject, NSDictionary *bindings) {
    return [evaluatedObject.productName rangeOfString:searchString options:NSCaseInsensitiveSearch].location != NSNotFound;
}]];

斯威夫特(我到目前为止)

func searchDisplayController(controller: UISearchDisplayController, shouldReloadTableForSearchString searchString: String!) -> Bool {

    let filteredArray = searchArray.filter { (session: ProductModel) -> Bool in
        //Contains String?
        return session.productName == searchString 
    }

    var S : String
    for S in filteredArray {    
        println(S)
    }

    return true
}

好奇。没有进口基础,有没有实现这一目标?

1 个答案:

答案 0 :(得分:1)

简短回答:不。

斯威夫特在它的班级和基础班之间有直接的桥接,例如:字符串到NSString。

NSString有一套非常丰富的方法。不要害怕基金会,拥抱它。

但是,这意味着要导入Foundation。

您可以选择编写自己的原生Swift函数来替换Foundation API。如果你愿意,你可以在这里或那里为一个功能做到这一点,但这看起来很荒谬。基础课程背后有数百万行工业级,高效,经过良好测试的代码。它们是运行时环境的一部分。学会使用它们。