Как обрабатывать повторяющиеся записи в Coredata с Codable - PullRequest
0 голосов
/ 12 октября 2018

Эта init функция вставляет новый объект каждый раз, даже если user_id одинаков.

Как я могу решить эту проблему?Я хочу, чтобы каждая сущность была только одна с user_id.

Мой код такой:

public convenience init(from decoder: Decoder) throws {
    // Create NSEntityDescription with NSManagedObjectContext
    guard let contextUserInfoKey = CodingUserInfoKey.managedContext,
        let managedObjectContext = decoder.userInfo[contextUserInfoKey] as? NSManagedObjectContext,
        let entity = NSEntityDescription.entity(forEntityName: "User", in: managedObjectContext) else {
            fatalError("Failed to decode User!")
    }
    self.init(entity: entity, insertInto: managedObjectContext)

    let userInfo = try decoder.container(keyedBy: UserInfoKeys.self)
    username = try userInfo.decodeIfPresent(String.self, forKey: .username)
    user_id = try userInfo.decode(String.self, forKey: .user_id)
}
...