0

フォーラムの皆さんは、私のコアデータ学習の試みに本当に役立ったと言わざるを得ません。

以下に示すように、コア データ エンティティに属性値を追加し、ユーザーが行を選択したときに関係を作成しています。

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{

UIAlertView *messageAlert = [[UIAlertView alloc]
                                 initWithTitle:@"Row Selected" message:@"Added to Routine!" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];

    NSManagedObjectContext *context = [self managedObjectContext];

    // Create a new device
    ExcerciseInfo *info = [_fetchedResultsController objectAtIndexPath:indexPath];
NSManagedObject *routineEntity = [NSEntityDescription insertNewObjectForEntityForName:@"Routines"inManagedObjectContext:context];
NSManagedObject *routineEntityDetail = [NSEntityDescription insertNewObjectForEntityForName:@"RoutinesDetails" inManagedObjectContext:context];

[routineEntityDetail setValue:routineEntity forKey:@"routineinfo"];

    [routineEntity setValue: RoutineText  forKey:@"routinename"];
    [routineEntityDetail setValue: info.details.muscle  forKey:@"image"];

IF statementが既に存在する場合routinename、新しいエントリが既存の関係に追加されるようにするにはどうすればよいですか?

これは現在のコードから簡単に可能ですか? そのため、テスト ルーチンは個別に表示されるのではなくグループ化され、詳細ビューには両方のエントリが含まれます。NSPredicateここで適切でしょうか?またはおそらくの使用distinctUnionOfObjects?

ご意見やご感想をお待ちしております。

ここに画像の説明を入力ここに画像の説明を入力

要求に応じて -

- (NSFetchedResultsController *)fetchedResultsController {

    if (_fetchedResultsController != nil) {
        return _fetchedResultsController;
    }

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

    NSSortDescriptor *sort = [[NSSortDescriptor alloc]
    initWithKey:@"routinename" ascending:NO];
    [fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];

    [fetchRequest setFetchBatchSize:20];

    NSFetchedResultsController *theFetchedResultsController =
    [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
                                        managedObjectContext:managedObjectContext sectionNameKeyPath:nil
                                                   cacheName: nil];
    self.fetchedResultsController = theFetchedResultsController;
    _fetchedResultsController.delegate = self;

    return _fetchedResultsController;
4

1 に答える 1

0
于 2013-07-11T07:15:41.560 に答える