2016-08-09 37 views
1

Ich verwende Core Data in einer meiner App. Es gibt eine zu viele Beziehung zwischen zwei EntitätenBeziehungsfehler in Core Data

Ereignis (eventId, Kommentare)

Kommentar (commentId, Bemerkung)

Von Service API I Ereignisliste, Kommentarliste und Beziehung Schiff zwischen zwei bekommen in einem anderen Block. Also aktualisiere ich den Kommentar. Es funktioniert gut, während ich aktualisiere. Aber während ich versuche, alle Kommentare zu bestimmten Ereignis zuzugreifen

<relationship fault: 0x7fad45884760 'comments'> 

Unten ist mein Code bestimmtes Objekt zu holen basierend auf 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

Bitte helfen Sie mir. Wo mache ich Fehler?

+0

Können Sie den Code an, wo Sie die Daten zu holen versuchen? –

+0

@KunalShrivastava Ich hatte die Frage aktualisiert –

+0

Wo sehen Sie die Nachricht "Beziehungsfehler", genau? Und auf welche Weise funktioniert Ihr Code nicht? –

Antwort

0

Fehler werden nur mühsam behoben, wenn Sie zum ersten Mal darauf zugreifen. Wenn Sie Ihre Anfrage, die n-Beziehung Objekte zu holen holen wollen, dann können Sie diese hinzufügen:

fetchRequest.relationshipKeyPathsForPrefetching = "Events-Comments Relationship Name"