1

私は自分の問題のためにアプリケーションで初めてコアデータを使用しています。私はグーグルをたくさんやりましたが、特定の解決策が見つかりませんでした。

私はエンティティを持っています:SubCategory

属性:mainCategoryId、subCategoryName。

今、私は次のようなデータをフェッチしたい

Select subCategoryName from SubCategory where mainCategoryId=1;

私が実装したコードは次のとおりです。

 NSFetchRequest *request = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"SubCategory" inManagedObjectContext:managedObjectContext];

    [request setEntity:entity];

    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SubCategoryName == %@",@"Triangular1"];
    [request setPredicate:predicate];

    NSError *error;
    arrSubCategory = [managedObjectContext executeFetchRequest:request error:&error];

coredataで同様の種類のデータを取得するにはどうすればよいですか?

あなたのアイデアを共有する

よろしくお願いします。

4

2 に答える 2

2

あなたの質問から、あなたが必要とするものは、

[NSPredicate predicateWithFormat:@"mainCategoryId = %@",@"1"];

したがって、コードは次のようになります。

NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription
    entityForName:@"SubCategory" inManagedObjectContext:context];
[fetchRequest setEntity:entity];

NSPredicate *predicate =[NSPredicate predicateWithFormat:@"mainCategoryId = %@",@"1"];
[request setPredicate:predicate];

NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
for (NSManagedObject *info in fetchedObjects) {
    NSLog(@"subCategoryName: %@", [info valueForKey:@"subCategoryName"]);
}

上記は単なるサンプルコードです。実際の実装は、要件によって異なる場合があります。

coredataのチュートリアルはこちらです。それもチェックしてください。

于 2012-11-08T07:11:38.337 に答える
0

あなたはこのようにすることができます

NSString *maincategoryId = @"1";
    NSManagedObjectContext *managedObjectContext = [self managedObjectContext];
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"SubCategory"];
    [fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"rubriqueid == %@", maincategoryId]];

NSMutableArray を呼び出して結果を入れた後:

NSMutableArray *answensmuarray = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy];
于 2015-01-09T17:03:00.897 に答える