Поиск диапазонов всех вхождений строки в основные данныеIOS

Программируем под IOS
Ответить
Anonymous
 Поиск диапазонов всех вхождений строки в основные данные

Сообщение Anonymous »

Я ищу способ получить диапазоны всех вхождений строки в большую строку в базовых данных.
Мое текущее решение включает в себя поиск всех объектов, у которых есть хотя бы один вхождение, а затем снова выполните поиск, чтобы найти все диапазоны строк. Этот метод не очень эффективен, так как он загружает в память множество постоянных объектов, особенно для ключей поиска небольшого размера или одного символа.
Я ищу способ получить диапазоны все вхождения непосредственно из основных данных, чтобы можно было предотвратить загрузку всех объектов.

Код, который я использую
Следующий код дает мне массив всех объектов, которые встречаются хотя бы один раз
let fetchRequest = Note.fetchRequest()
fetchRequest.predicate = NSPredicate(format: "content contains[cd] %@", key)
return try container.viewContext.fetch(fetchRequest)

Это код, который дает мне диапазоны всех вхождений
var ranges: [Range] = []

while let range = string.range(of: substring, options: [.caseInsensitive, .diacriticInsensitive], range: (ranges.last?.upperBound ?? string.startIndex)..

Подробнее здесь: https://stackoverflow.com/questions/786 ... -core-data
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»