0

コア データ リレーションシップ エラーのために多くの時間を浪費した後、ポップアップ ボタン セルをエンティティ リレーションシップにバインドできるようになりました。
唯一の問題は、すべてのオプションを選択して参照すると名前が表示されますが、関係を選択してクリックすると名前が消えることです。
エンティティは非常に単純です。

エンティティ

したがって、人は 0 人または 1 人の家を持つことができ、家は 0 人から N 人を持つことができます (逆の関係)。
エンティティ モードの "people" という名前の配列コントローラーがあり、マネージド オブジェクト コンテキストの people オブジェクトにバインドされています。homes オブジェクトにバインドされている "homes" についても同じです。テーブル ビューのすべての名前が正しく表示されます。ポップアップ ボタンを除きます。選択すると次のように表示されます。

ポップアップボタン

これは、選択されていないときに表示されるものです。

ポップアップボタン

ご覧のとおり、セルは空です。ポップアップ ボタンのバインディングは次のとおりです。

1.コンテンツ: 「家」の配置されたオブジェクト。
2.内容値: 「家」は、objects.name を配置しました。
3.選択されたオブジェクト: 「人」 selection.home 。

質問になりますが、選択されていないときにポップアップ ボタンにリレーションシップ名が表示されないのはなぜですか?

PS: テーブル ビューはセル ベースです。

4

2 に答える 2

2

That has been a pain to me, and lastly I solved it so there's the explanation for who will find my same problem: I was mixing view based table views with cell based table views.If you want to bind a cell based table view, do not bind the table view content to the managed object context, but bind it's columns.For the popup button I cancelled all bindings and bound it's column this way:

  1. Content: "homes" arranged objects;
  2. Content values: "homes" arranged objects.name;
  3. Selected object: "people" selection.home .

So this may seem the same, but now is the table column to have these bindings, not the button cell.And now all works fine.

于 2012-11-14T13:33:23.727 に答える