2016-08-09 1 views
1

J'utilise Core Data dans l'une de mes applications. Il y a un à plusieurs entre deux entitésErreur de relation dans les données de base

Event (eventId, commentaires)

Commentaire (CommentID, remarque)

de l'API de service que je reçois la liste des événements, liste de commentaires et navire relation entre deux dans un autre bloc. Donc, je suis en train de mettre à jour le commentaire. Cela fonctionne bien pendant que je mets à jour. Mais pendant que je suis en train d'accéder à tous les commentaires pour événement particulier

<relationship fault: 0x7fad45884760 'comments'> 

Voici mon code pour chercher objet particulier basé sur ID

static func fetchObjectWithId(key: String, value: CVarArgType, context: NSManagedObjectContext, entityName: String) -> CoreDataBase!{ 
    let fetchRequest = NSFetchRequest(entityName: entityName) 
    fetchRequest.returnsObjectsAsFaults = false 
    if let val = value as? Int32{ 
     fetchRequest.predicate = NSPredicate(format: "%K = %d", key, val) 
    } 
    else{ 
     fetchRequest.predicate = NSPredicate(format: "%K contains[c] %@", key, value) 
    } 


    do{ 
     let result = try context.executeFetchRequest(fetchRequest) 
     if result.count == 1{ 
      if let data = result[0] as? CoreDataBase{ 
       return data 
      } 
      return nil 
     } 
     else{ 
      return nil 
     } 
    } 
    catch{ 
     let saveError = error as NSError 
     print("\(saveError), \(saveError.userInfo)") 
    } 
    return nil 
} 

enter image description here

S'il vous plaît aidez-moi. Où suis-je en train de faire une erreur?

+0

Pouvez-vous indiquer le code dans lequel vous essayez d'extraire les données? –

+0

@KunalShrivastava J'avais mis à jour la question –

+0

Où voyez-vous le message "relation fault", exactement? Et de quelle manière votre code ne fonctionne-t-il pas? –

Répondre

0

Les défauts sont récupérés paresseusement lorsque vous y accédez pour la première fois. Si vous voulez que votre requête de recherche récupère les objets de relation to-many, vous pouvez ajouter ceci:

fetchRequest.relationshipKeyPathsForPrefetching = "Events-Comments Relationship Name"