1

私はエンティティとコア・データ・モデルは、以下の属性で構成されてクライアント呼ばれています:は、プログラム(IBは、結合のように「追加」)コアデータのエンティティに追加

client model entity

た場合を

client window

は何でしょう:Iボタン「がクライアントを追加する」と、次のウィンドウを開きをクリックしてくださいバインドされたIBの「追加」ボタンがNSArrayControllerでどのように機能するかと同様の方法で、各プロパティの新しいエントリをプログラムで同時に追加し、「クライアントを追加する」ウィンドウのテキストフィールドに表示させる方法が適切です編集するには? 'クライアント追加クライアント'のテキストフィールドは、クライアントエンティティの対応するプロパティ(1つまたは2つでも欠落している)にバインドされています。現時点で私が持っているコードは次のとおりです。

このプロジェクトに他のエンティティのために働いたが、私は(それがコンソールでKVCエラーをスローする)関係タイプを追加しましたので、 クライアントのために働いていません
- (IBAction)addNewClient:(id)sender; 
{ 
    [addClientsWindow makeKeyAndOrderFront:self]; 
    //NSManagedObjectContext *clientsMoc= [clientsController managedObjectContext]; 
    //[clientsMoc addObject:[clientsMoc newObject]]; 
    [clientsController addObject:[clientsController newObject]]; 
} 

。私はNSManagedObjectContextではなくNSArrayControllerに対処しているが、コメントアウトされたコードは私のために働いていないからだと思う。この試行はprevious questionから続きます。質問が多く変わったため、私は与えられたアドバイスを実装するのに苦労しています。私は本当に良い出発点が必要で、リンゴの開発者のドキュメントは私がこれを理解するのを助けていません。

ありがとうございます!

----更新----

が、私はこの質問にひどく物事を説明するのですか?私はここに新しいですが、答えにしようとするかもしれないと思った。これを検索することは何らかの理由で困難でした。私は無関係のGoogle検索を通じて解決策に類似したものを見つけたかもしれません。幸いにも、これはこれに関連していました。

- (IBAction)addNewClient:(id)sender; 
{ 
    [addClientsWindow makeKeyAndOrderFront:self]; 
    NSManagedObjectContext *clientsMoc= [clientsController managedObjectContext]; 
    NSManagedObject *clientsEntity = [NSEntityDescription 
            insertNewObjectForEntityForName:@"Clients" 
             inManagedObjectContext:clientsMoc]; 
    [clientsEntity setValue:@"name" forKey:@"clientName"]; 
    [clientsEntity setValue:@"company" forKey:@"clientCompany"]; 
    [clientsEntity setValue:@"address" forKey:@"clientAddress"]; 
    [clientsEntity setValue:@"11111111" forKey:@"clientLandline"]; 
    [clientsEntity setValue:@"[email protected]" forKey:@"clientEmail"]; 
} 

これにより、クライアントエンティティの完全な新しいエントリが作成されました。これは、各プロパティに対して個別の値を設定する必要があることを認識しませんでした。 KVCのエラーは続きましたが、解決策がまったく見つかりませんでした。アップルのデベロッパー・ドキュメントは、実際にはhereに役立っていて、「起動時に引数を渡す」リストにNSBindingDebugLogLevel 1を追加すると、問題の原因を正確に知ることができました。更新されていないNSTableColumnへの古いバインディングでした。

答えて

3

これは私が後だった解決策になることがあります。これは、クライアントエンティティのための完全に新しいエントリを作成

- (IBAction)addNewClient:(id)sender; 
{ 
    [addClientsWindow makeKeyAndOrderFront:self]; 
    NSManagedObjectContext *clientsMoc= [clientsController managedObjectContext]; 
    NSManagedObject *clientsEntity = [NSEntityDescription 
            insertNewObjectForEntityForName:@"Clients" 
             inManagedObjectContext:clientsMoc]; 
    [clientsEntity setValue:@"name" forKey:@"clientName"]; 
    [clientsEntity setValue:@"company" forKey:@"clientCompany"]; 
    [clientsEntity setValue:@"address" forKey:@"clientAddress"]; 
    [clientsEntity setValue:@"11111111" forKey:@"clientLandline"]; 
    [clientsEntity setValue:@"[email protected]" forKey:@"clientEmail"]; 
} 

- 私は各プロパティの個々の値をしなければならないでしょう実現しなかったが。 KVCのエラーは続きましたが、解決策がまったく見つかりませんでした。アップルの開発者のドキュメントは、実際にはこの1つ、hereに役立って、 "起動時に渡される引数"リストにNSBindingDebugLogLevel 1を追加すると、問題の原因となったものの詳細がわかりました。更新されていないNSTableColumnへの古いバインディングでした。

関連する問題