0

ここに画像の説明を入力

Menu エンティティを介して作成された項目を取得するのに本当に問題があります。これは、特定のメニュー オブジェクトにアイテムを追加するために使用したコードです。

-(void)additem:(NSString *)entity :(NSDictionary *)aDictionary :(NSString *)menu
{
   NSLog(@"additem");
   NSError *error = nil;

   Menu *menuItem = nil;

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

[request setPredicate:[NSPredicate predicateWithFormat:@"mname=%@ and msection =%@",@"Parents",@"Keydates"]];

menuItem = [[managedObjectContext executeFetchRequest:request error:&error] lastObject];

if (error) {
    //Handle any errors
}
if (!menuItem) {
    //Nothing there to update
    NSLog(@"This class doesn't exist");
}

Items *anitem = (Items *)[NSEntityDescription insertNewObjectForEntityForName:@"Items" inManagedObjectContext:managedObjectContext];;
anitem.type = [aDictionary objectForKey:@"type"];
anitem.title = [aDictionary objectForKey:@"title"];
anitem.image = [aDictionary objectForKey:@"image"];
anitem.subtitle = [aDictionary objectForKey:@"subtitle"];

[menuItem addItemsObject:anitem];

[managedObjectContext save:&error];

}

述語を使用して、特定の Menu オブジェクトで作成されたすべての項目を取得したいと考えています。これが私がそれを取得しようとしているコードです。

- (void) readItems: (NSString *)section {


    NSLog(@"readItems");
    NSError *error = nil;

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Menu"
                                          inManagedObjectContext:managedObjectContext];
    fetchRequest.resultType = NSDictionaryResultType;

    [fetchRequest setEntity:entity];

    [fetchRequest setReturnsObjectsAsFaults:NO];

    [fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"mname=%@ and msection = %@",@"Parents",@"Keydates"]];


    NSArray *fetchedObjects = [managedObjectContext executeFetchRequest:fetchRequest error:&error];

    for (Items *item in fetchedObjects) {
        NSLog(@">>>>>>%@",item);
    }
}

誰でも私を正しい方向に向けることができます.私はセクションを通過し、それを使用しないことを知っています. 実際の値を入れました。

4

1 に答える 1