Mon appli crash avec le message : Thread 1: "Illegal attempt to establish a relationship 'utilisateur' between objects in different contexts .

Le probleme est que cela arrive seulement avec le simulateur iphone 15 (17.0.1). Elle fonctionne avec le simulateur IPAD. avec d'autres simulateur, avec mon telephone et avec mon Ipad.

Voici mes modeles:

@Model

class ScoreUtilisateur {

  @Attribute(.unique) var id: UUID

  @Attribute var reussi: Bool

  @Attribute var date: Date


  @Relationship var utilisateur: Utilisateur

  @Relationship var question: Question


  init(utilisateur: Utilisateur, question: Question, reussi: Bool, date: Date = Date()) {

    self.id = UUID()

    self.utilisateur = utilisateur

    self.question = question

    self.reussi = reussi

    self.date = date

  }

}

@Model

class Utilisateur : Identifiable {

  @Attribute(.unique) var id: UUID

  var nom: String

  var avatar: String?

  @Relationship(deleteRule: .cascade, inverse: \ScoreUtilisateur.utilisateur)

  var scores: [ScoreUtilisateur]


  init(nom: String, avatar: String?) {

    self.id = UUID()

    self.nom = nom

    self.avatar = avatar

    self.scores = []

  }

}

@Model

class Question {

  @Attribute(.unique)

  var id: UUID

  var typeQuestion: String

  var enonce: String

  var theorie: String

  var img: String = ""

  var score : Bool = false

   

  @Relationship(deleteRule:.cascade, inverse: \Reponse.question) var reponses: [Reponse] = []

  @Relationship var niveau: Niveau?

   

  init(id: UUID = UUID(), typeQuestion : String,enonce: String, theorie : String, niveau: Niveau) {

    self.id = id

    self.typeQuestion = typeQuestion

    self.enonce = enonce

    self.theorie = theorie

    self.niveau = niveau

     

  }

  init(id: UUID = UUID(), typeQuestion : String,enonce: String, theorie : String,img: String, niveau: Niveau) {

    self.id = id

    self.typeQuestion = typeQuestion

    self.enonce = enonce

    self.theorie = theorie

    self.niveau = niveau

    self.img = img

  }

}


et voici la fonction qui crash:


   // mettre a jour la table scoreUtilisateur

  func mettreAJourScoreUtilisateur(utilisateur: Utilisateur,

                   question: Question,

                   reussi: Bool,

                   date: Date = Date(), context: ModelContext) {

    // trouver le user

    let users = utilisateurs.filter {$0.id == utilisateur.id}

    guard let user = users.first else {

        

        return

      }

    // verifier si le score existe

    let score = scoreUtilisateur.filter {$0.question.id == question.id && $0.utilisateur.id == user.id}

    if score.count > 0 {

      scoreUtilisateur.filter {$0.question.id == question.id && $0.utilisateur.id == user.id}[0].reussi = reussi

      scoreUtilisateur.filter {$0.question.id == question.id && $0.utilisateur.id == user.id}[0].date = date

      try? context.save()

      print("Question mise a jour : \(question.enonce)")

      print("Question reussi? : \(reussi)")

    } else {

      let scoreUtilisateur = ScoreUtilisateur(utilisateur: user, question: question, reussi: reussi, date: date)

       

      context.insert(scoreUtilisateur)

       

      try? context.save()

      print("Question ajoutee : \(question.enonce)")

      print("Question reussi? : \(reussi)")

       

    }

     

  }


Merci de vos retours

iPhone 14, iOS 18

Posted on Jul 12, 2025 08:52 PM

Reply

There are no replies.

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Mon appli crash avec le message : Thread 1: "Illegal attempt to establish a relationship 'utilisateur' between objects in different contexts .

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.