быстрый способ проверить наличие дублированных значений в Core Data - PullRequest
1 голос
/ 11 ноября 2011

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

У меня есть ManufacturerID и ItemID, и у меня не может быть одинакового значения для обоих, пример неверных данных:

ManufacturerID   ItemID
35               IT001
35               IT001

Так что я просто хотел бы знать, если это произошло, и, возможно, получить список этих ItemID, тогда мне нужен способ выяснить, как избавиться от обманщиков, но это хорошее начало.

Мне просто нужен быстрый метод, чтобы выяснить, существуют они или нет.

1 Ответ

0 голосов
/ 11 ноября 2011

В моем приложении есть SynchManager, который с помощью NSoperations выполняет синхронизацию в фоновом режиме и сохраняет новые записи в постоянном хранилище sqlite, только если они не сохранены.В основном я делаю следующее:

  1. выполнить запрос на выборку, который извлекает наборы сохраненных идентификаторов (в моем случае это идентификаторы строк, представляющие URL-адреса)
  2. перед вставкой новогообъект в хранилище Я вызываю метод, подобный « shouldImportObject: », который в основном проверяет, что URL еще не сохранен в базе данных.Это упрощенный пример реализации:

    for (id objectID in ids) {
      if ([objectID isEqual:objectToImport.objectID]) {
         return NO;
      }
    }
    
    return YES;
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...