フォーラムの皆さんは、私のコアデータ学習の試みに本当に役立ったと言わざるを得ません。
以下に示すように、コア データ エンティティに属性値を追加し、ユーザーが行を選択したときに関係を作成しています。
- (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;