2017-08-02 14 views
0

私は、2つの関係:courseAcourseBを持つNSManagedObjectクラスを持っています。 これらの関係は、動的変数で表される必要があります。この変数をクラス外からどのように変更することが可能ですか?NSManaged変数を設定するには?

例えば、University.name = University.courseB.nameのようなViewController内から、 Notifikationについて考えていましたが、これはおそらくもっと複雑に思えます。

他の方法がない場合、大学のクラス内でオブザーバをどのように実装する必要がありますか?

ありがとうございます。

答えて

1

コードを見ると、 "計算済み"変数または "準備完了"変数が宣言されています。これは、別の変数または変数の組み合わせから値が得られる変数です。

データモデルが表示されないため、コアデータモデルで名前パラメータを定義しているかどうかはわかりません。それにかかわらず、ロジックが多少混乱している場合は、ゲッターが定義しているため、保持できる値は無視されます。値を書き込むことができるようにするには、self.courseA.nameを設定するセッターを定義する必要があります。 Key-Valueコーディング通知は、Core Data Managed Objectによってトリガーされるため、心配する必要はありません。

public class Universtity: NSManagedObject { 

    dynamic var name: String { 
     get { 
      let name = self.courseA?.name 
      return name! 
     } 
     set(newValue) { 
      courseA!.name = newValue 
     } 
    } 
} 

また、ゲッターでオプションでない値を強制的に解除するパターンは最適ではありません。これは別の議論なので編集していませんが、どうして私はこれをやっているのでしょうか?すべてのための "?"と "!"あなたが使う。

関連する問題