0

iPhone CoreData funky fetch-request: 製品の Unique-CategoryCodes の配列を取得する関数を構築したい エンティティ "製品" があり、フィールド (プロパティ) カテゴリがあります。もちろん、Category は Categories エンティティとの関係です。

これは私の機能の場合:

- (NSArray *)uniqueCategoriesWithQuery:(NSString *)query {
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Product" inManagedObjectContext:[self managedObjectContext]];    
NSDictionary *entityProperties = [entity propertiesByName];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entity];
[request setReturnsDistinctResults:YES];
[request setPropertiesToFetch:[NSArray arrayWithObject:[entityProperties objectForKey:@"Code"]]];
[request setResultType:NSDictionaryResultType];
[request setIncludesSubentities:YES];
[request setIncludesPropertyValues:YES];
NSError *fetchError = nil;
NSArray *result = [[self managedObjectContext] executeFetchRequest:request error:&fetchError];
DebugLog(@"%@", result);
if (fetchError == nil && [result count] > 0) {
    return result;
}
return nil;

}

MyResult: 2010-12-10 05:55:33.683 iApp[3453:307] -[ShoppingHelper uniqueCategoriesWithQuery:] [1193 行] ( { カテゴリ = "0x495a200 "; }, { カテゴリ = "0x4959ce0 "; } )

コードはうまく機能しますが、結果をまったく使用できません。私は自分のカテゴリを持っています...しかし、NSStringsの代わりにID'..それをどのように消費するのですか?

多分私は使用する必要があります: [request setPropertiesToFetch:[NSArray arrayWithObject:[entityProperties objectForKey:@"Categories.Code"]]];

Distinct NSDictionary で NSStrings を取得するには?

また

ID でカテゴリを検索 - 方法は?

4

1 に答える 1

0

を使用NSDictionaryResultTypeせずに管理対象オブジェクトを返すようにするとCategory、返されたオブジェクトの適切なプロパティを介してオブジェクトにアクセスできProductます。そこから、各カテゴリから必要な情報を取得できます。ただし、これを行い、結果セットが非常に大きい場合は、フェッチ バッチ サイズを設定することをお勧めします。

于 2010-12-10T07:19:33.170 に答える