учтите, что мой вопрос относится к синтаксису Swift 4 . У меня есть громоздкий / большой массив строк , и я хочу отфильтровать его для получения всех значений в нем, которые начинаются с каких-то определенных символов / подстроки . Это означает, что мне нужно, чтобы каждая строка в моем массиве совпадала с начальной строкой. Я нашел разные ссылки, которые дают мне код для Objective-C , и я не могу реализовать его в Swift 4 , потому что методы недоступны в Swift 4, Я решил свой вопрос вручную, выполнив итерацию моего массива в цикле for, но он дает очень медленный результат. Поэтому я не хочу использовать какой-либо цикл здесь, поэтому любая помощь будет полезна. Заранее спасибо. Смотрите мой код ниже:
func search() -> Void {
var dummyStringsArray:[String] = ["Hotel Restaurants","Restaurants","Certified Green Restaurant(R)","Japnies Food Restauarants","Grill Restaurants","Restaurant Equipment","Wholsale Restaurant Fixtures","American Food","Wholsale Restaurant Supplies","Veg Restaurants","Barbecue Restaurants","Non-Veg Restaurants"]
var displayDataArray:[String] = []
let searchString:NSString = (textField.text!).lowercased() as NSString
for string in self.dummyStringsArray {
let mainString:NSString = string.lowercased() as NSString
if mainString.length >= searchString.length {
let compareString = String(mainString.substring(to: searchString.length))
if searchString as String == compareString {
displayDataArray.append(string)
}
}
}
}
Таким образом, если я ввел текст в textField как ' re ', то он должен вернуть displayDataArray, содержащий значения, такие как "Restaurants", "Restaurant Equipment".