2010-12-02 4 views
0

コアデータを使用する際に問題が発生しました。ここで説明します、私は更新managedObjectContextは、挿入は、いくつかのエンティティe.t.c.を追加する方法はありカップルを、使用して1つのメソッドに2つの異なるフェッチリクエストを作成する - 不可能と思われる

InitUpdateIXC *initAndUpdate = [[[InitUpdateIXC alloc] init] autorelease]; 
[initAndUpdate updateCarrierList:self.managedObjectContext]; 

:私AppDelegateから 私は自分自身のクラスと呼ばれます私はこの方法二回述語を使用するように制限を見つけるこの場合

:細かい作業を使用して まず、私は、要求内の結果見:MOの周りにループ内

NSFetchRequest *requestDestinationsForSale = [[NSFetchRequest alloc] init]; 
[requestDestinationsForSale setEntity:[NSEntityDescription entityForName:@"DestinationsListForSale" 
           inManagedObjectContext:managedObjectContext]]; 

[requestDestinationsForSale setPredicate:[NSPredicate predicateWithFormat:@"carrier.name like %@",carrierName]]; 

NSArray *destinationsForSale = [managedObjectContext executeFetchRequest:requestDestinationsForSale error:&error]; 

for (NSManagedObject *destinationForSale in destinationsForSale) 
{ 
    for (NSManagedObject *code in [destinationForSale valueForKey:@"codesvsDestinationsList"]) 
    { 

を私は新しいfetchRequestを作成しようとしています:

NSFetchRequest *requestDestinationWeBuy = [[[NSFetchRequest alloc] init] autorelease]; 
[requestDestinationWeBuy setEntity:[NSEntityDescription entityForName:@"DestinationsListWeBuy" 
              inManagedObjectContext:managedObjectContext]]; 
NSError *error = nil; 
[requestDestinationWeBuy setPredicate:[NSPredicate predicateWithFormat:@"carrier.name like %@",carrierName]]; 
NSArray *destinationWeBuyList = [managedObjectContext executeFetchRequest:requestDestinationWeBuy error:&error]; 

ops ... NSArra yが空です... [initAndUpdate updateRoutingTable:self.managedObjectContext];私が同じ方法でAppDelegateからメソッドを呼び出すと、 が実行されます。

メインのAppDelegateからちょうど呼び出されたのと同じクラス、同じメソッドです。ちょうど管理されたコンテキストを使用するために少し変更されました。

managedObjectContextのように見えるのは、更新を行うクラスメソッドを残したときのみ最終的な更新があることです。 コメントありがとうございます。

+0

合意。 0件の回答、アレックスで11の質問があります。コミュニティがあなたを助けてくれるのは何ですか? –

+0

私は同情を取るが、いくつかの回答を受け入れる必要がある。あなたの名前をクリックし、前の質問に進み、質問に最もよく答える答えの横にあるチェックマークを押します。あなたが決して答えを受け入れることができなければ、あなたの質問に答えた人は誰も評判のポイントを受け取りません。 – TechZen

+0

申し訳ありませんが、私はこの重要なポイントを逃しました:-)。それは今のところです – Alex

答えて

0

最初のフェッチではエンティティDestinationsListForSaleをフェッチしていますが、2番目のフェッチではエンティティDestinationsListWeBuyをフェッチしています。最も簡単な説明は、同じ述語が異なるエンティティに適用されたときに同じ結果を生成しないということです。

一度に永続化されるエンティティとデータの両方の詳細に応じて、同じ述語は異なるエンティティに対して適用されるときに異なる結果を生成します。

実際、これは予想される動作です。

+0

コードで見られるように、私は異なるエンティティに対して異なるフェッチ要求を行います。 – Alex

+0

NSFetchRequest * requestDestinationWeBuyおよびNSFetchRequest * requestDestinationsForSale – Alex

関連する問題