0

私はココアバインディングを初めて使用するので、ココアバインディングを使用して、従業員の平均給与を単純に計算し、テキストフィールドに表示する簡単なアプリケーションを作成しようとしました。私は次の手順に従いました:

  1. モデル クラスPersonを作成しました: 今のところ 1 つのプロパティで -

    @property (読み書き、割り当て) int 給与;

  2. アプリケーション デリゲート クラスで、可変配列を初期化しました。personArray次のような特定のオブジェクトを使用します。

    Person *person1 = [[Person alloc] init];
    person1.salary = 5000;
    
    Person *person2 = [[Person alloc] init];
    person2.salary = 15000;
    
    Person *person3 = [[Person alloc] init];
    person3.salary = 7000;
    
    Person *person4 = [[Person alloc] init];
    person4.salary = 9000;
    
    Person *person5 = [[Person alloc] init];
    person5.salary = 11000;
    
    personArray= [[NSMutableArray alloc] initWithObjects:person1, person2, person3, person4, person5,nil];
    
  3. IB で NSArrayController オブジェクトを削除し、そのモードを Class - に設定し、属性ペインにPersonキーを追加しました。salary次に、バインディング ペインで、コンテンツ配列を ApplicationDelegate クラスにバインドし、モデル キー パスを に設定しself.personArrayます。

  4. ウィンドウに NSTextField をドロップしました。その値を ArrayController オブジェクトにバインドしました。割り当てられたコントローラ キーは -arrangedObjectsです。割り当てられたモデル キー パス@avg.salary

アプリケーションを実行したところ、テキスト フィールドに値が表示されていませんでした。

私が間違っている可能性がある場所や、それを達成するための他の最良の方法を誰かに教えてもらえますか

ありがとう、

ミラージュ

4

1 に答える 1

0

上記で報告された問題は現在解決されています。私はそれを解決するために次の改善を行いました。

  1. personArrayApplicationDelegateクラスで-のプロパティを宣言しました。

  2. PersonオブジェクトをpersonArrayに直接割り当てる代わりに、最初にそれらを一時配列に割り当て、次に:-setValue:forKey:メソッドを使用してpersonArrayに割り当てました。

意図したとおりに機能するようになりました:)

于 2010-06-13T10:41:41.310 に答える