2016-08-09 7 views
1

私のアプリケーションでコアデータを使用しています。 2つのエンティティコアデータのリレーションシップフォルトエラー

イベント の間には多くの関係1(イベントID、コメント)があり

コメント (commentId、発言)私は2つの間のイベントリスト、コメントリストと関係の船を取得するサービスAPIから

別のブロックでだから私はコメントを更新しています。更新中は正常に動作しています。しかし、私は特定のイベントのために、すべてのコメント以下は

<relationship fault: 0x7fad45884760 'comments'> 

にアクセスしようとしている一方では、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

に基づいて特定のオブジェクトを取得するために私のコードで私を助けてください。どこで私は間違っているのですか?

+0

データをフェッチしようとしている場所でコードを提供できますか? –

+0

@KunalShrivastava私は質問を更新しました –

+0

"relationship fault"メッセージはどこにありますか?そして、どのような具体的な方法でコードが機能していないのですか? –

答えて

0

障害に初めてアクセスすると、障害が遅延読み込みされます。フェッチ要求で多対多リレーションシップオブジェクトをフェッチする場合は、次のように追加します。

fetchRequest.relationshipKeyPathsForPrefetching = "Events-Comments Relationship Name"