2017-04-06 27 views
2

患者と録音という2つのコアデータエンティティがあります。患者は、単一または複数の記録を有することができる。私はビューの読み込み私は両方のエンティティの属性の情報をフェッチすることができます私たちがsqlで結合を使用したように単一のフェッチにしたいとき。どんな助け?CoreData Swiftの複数のエンティティから属性を取得する

Core Data Model Image Search Patient

患者は、単一の記録口述または複数を持つことができます。現在ビューロードでは、コアデータ患者エンティティからのすべての患者を示します。私はテーブルセルに画像を表示したいのですが、もし患者がレコーディングしていればレコーディングアイコンが表示され、レコーディングにはレコーディングアイコンがあり、レコーディングがない場合はアイコンが表示されません.iテーブルの両方のデータを取得したい一回のフェッチで

func FetchSearchData() { 

     let uid = defaults.value(forKey: "UserID") 
     searchTasks.removeAll() 

     let fetchRequest:NSFetchRequest<Patients> = Patients.fetchRequest() 
     let sortDescriptor = NSSortDescriptor(key: "dateSchedule", ascending: true) 
     fetchRequest.sortDescriptors = [sortDescriptor] 
     let predicate = NSPredicate(format: "(userID=%@)", uid as! CVarArg) 
     fetchRequest.predicate = predicate 

     do { 
      let count = try getContext().count(for: fetchRequest as! NSFetchRequest<NSFetchRequestResult>) 

      if count > 0 { 

       let fetchResult = try getContext().fetch(fetchRequest) 

       for item in fetchResult { 
        searchTasks.append(item) 
        searchTableView.reloadData() 
       } 
      } else { 
       searchTableView.reloadData() 
      } 

     }catch { 
      print(error.localizedDescription) 
     } 

    } 

私は画像のように作成関係を持っています。どの患者に録音があるのか​​を今どのように確認することができますか?

+0

私はコアデータの専門家ではありませんが、これまでに何を試しましたか?何が失敗した?コアデータモデルはどのように見えますか?フェッチリクエストは何をしようとしていますか? –

+1

あなたは少なくともあなたがしたいフェッチを擬似コード化することができます – SeanLintern88

+0

http://www.stackoverflow.com/help/how-to-ask – sasquatch

答えて

2

Core Dataを使用すると、一度に1つのエンティティタイプしか取得できません。コアデータはSQLではありません。

このコアデータスタイルのアプローチは、次のようなものになります。フェッチインスタンスPatients。各Patientsインスタンスでsoundsの関係を使用して、どのレコーディングが存在するかについての情報を取得します。たとえば、特定の患者にレコーディングがあるかどうかを知りたい場合は、soundsの関係(セット)を調べ、空であるかどうかを確認します。

+0

@Robotic Cat編集された質問のおかげで。私はここに来るときに質問をすることについてのルールを必ず確認します。ありがとう。 – Imran

関連する問題