Атрибут сущности CoreData имеет добавленный суффикс регулярного выражения или юникода - PullRequest
0 голосов
/ 10 апреля 2019

У меня есть база данных CoreData SQLLite с сущностью, у которой есть строковое свойство 'userId'. Это свойство уникально. Однако мне как-то удалось получить одну сущность с userId == '9' и другую userId == '9 \ u {01}'. И если я запрашиваю userId == 9, я иногда получаю второй.

Справочная информация. UserId изначально имеет целочисленное значение, но у меня есть веские основания для хранения в виде строки.

Я думаю, что проблема могла возникнуть из-за того, что я сохранял userId, используя "\ (userId) вместо String (userId). Но я не уверен.

Я не могу понять, почему я иногда получаю правильный, а иногда "9 \ u {01}". Я проверил, что предикат всегда читает "userId == 9". Я также проверил, что количество возвращаемых объектов всегда равно 1, я никогда не получаю обратно оба объекта.

Любая помощь / идеи будут наиболее ценными.

let fetchRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest(entityName: "EntityName")
fetchRequest.predicate = NSPredicate(format: "%K == %@", "userId", userId)

coreDataStack.context.perform { [weak self] in

            guard let strongSelf = self else {
                completion(nil)
                return
            }

            do {
                if let savedObjects = try strongSelf.coreDataStack.context.fetch(fetchRequest) as? [T] {

                    completion(savedObjects)
                }
                else {
                    completion(nil)
                }
            }
            catch let readError {
                Print("Failed to read Database: \(String(describing: readError))")
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...