2010-11-23 12 views
1

私は人と呼ばれるコアデータエンティティを持っていると言います。プロパティが特定の値と一致するPersonのNSArrayをどのように取得できますか?その身長、体重、年齢が特定の値であると、インスタンスの特定の年齢の誰か、身長、体重または...または誰か...についてNSPredicateを使用してCore Dataオブジェクトの配列を取得しますか?

は、私はそうのようなNSPredicateを使用することができます。

NSPredicate *pred = 
[NSPredicate predicateWithFormat: 
@"(age == 25) OR (height_in_cms == 185) OR (age == 30 AND height_in_cms == 170 AND weight_in_kgs == 80)"; 
// All properties are NSNumber 

答えて

1

を維持します。フォーマットの詳細は、AppleのPredicate Programming Guideで確認できます。あなたは、あなたがそれを持っていたら、述語をどうするかを求めている場合は、ここであなたに手順を示したスニペットは、次のとおりです。

// Create a fetch request. 
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 

// Set the entity for the fetch request. 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"EntityName" inManagedObjectContext:managedObjectContext]; 
[fetchRequest setEntity:entity]; 
[entity release]; 

// Set the predicate for the fetch request. 
[fetchRequest setPredicate:predicate]; 

// Perform the fetch. 
NSError *error; 
NSArray *array = [managedObjectContext executeFetchRequest:fetchRequest error:&error]; 
[fetchRequest release]; 

あなたは結果をソートしたい場合は、ソート記述子の配列を渡すことができますフェッチを実行する前にsetSortDescriptors:を使用してフェッチ要求に転送します。

1

変数にこれらの値がある場合、指定されたステートメントに従うことができます。 [NSPredicate predicateWithFormat:@ "age ==%OR hieght ==%i AND weight ==%i"、age、height、weight]]; fetchResults filterUsingPredicate:[NSPredicate predicateWithFormat:

そしてまた、あなたのアプローチは、特定の値のためのケースで正しいですが、構文エラーを持つあなたの文は、私はpredicateWithFormat:の構文上の専門家ではないんだけど、あなたは基本的な要点を持って適切な構文に

関連する問題