Вставка и выборка основных данных для объектов взаимосвязей

Я новичок в основных данных, поэтому у меня есть несколько вопросов. Я спрошу двоих

1) У меня есть две сущности с именами Team и TeamMembers. Они имеют отношение ко многим, то есть в одной команде может быть много участников. Сначала, пожалуйста, взгляните на следующую диаграмму и файлы .h этих моделей и дайте мне знать, исправил ли я отношения ко многим между Team и TeamMembers (у меня такое чувство, что у меня сложились противоположные отношения).

enter image description here

Teams.h

#import <CoreData/CoreData.h>

@class TeamMembers;

@interface Teams :  NSManagedObject  
{
}

@property (nonatomic, retain) NSString * team_name;
@property (nonatomic, retain) NSString * color;
@property (nonatomic, retain) NSString * points;
@property (nonatomic, retain) TeamMembers * members;

@end

TeamMembers.h

#import <CoreData/CoreData.h>

@class Teams;

@interface TeamMembers :  NSManagedObject  
{
}

@property (nonatomic, retain) NSString * member_name;
@property (nonatomic, retain) NSSet* teams;

@end


@interface TeamMembers (CoreDataGeneratedAccessors)
- (void)addTeamsObject:(Teams *)value;
- (void)removeTeamsObject:(Teams *)value;
- (void)addTeams:(NSSet *)value;
- (void)removeTeams:(NSSet *)value;

@end

2) Пожалуйста, мне нужен образец кода для вставки Team, а затем вставки ее членов команды. Также Как получить членов команды определенной команды.


EDITED Я использую следующий фрагмент кода для вставки в объекты Teams и Team members, но он не возвращает всех членов команды в NSSet. Он возвращает только одного члена команды в результирующем наборе

    self.context = [del managedObjectContext];

            Teams *teamobj = [NSEntityDescription
                             insertNewObjectForEntityForName:@"Teams" 
                             inManagedObjectContext:context];
            teamobj.team_name = teamname.text;
            teamobj.color = [NSString stringWithFormat:@"%d", color];
            teamobj.points = [NSString stringWithFormat:@"%d", 0];

            for(UITextField *view in self.scrollview.subviews)
            {
                if([view isKindOfClass:[UITextField class]])
                {
                    if ([view tag] == 99) {
                        if (![view.text isEqualToString:@""]) {
                            noone = YES;
                            TeamMembers *teammember = [NSEntityDescription
                                              insertNewObjectForEntityForName:@"TeamMembers" 
                                              inManagedObjectContext:context];
                            teammember.member_name = view.text;
                            teammember.teams = teamobj;

                            [teamobj addMembersObject:teammember];
                        }
                    }
                }
            }
if (![context save:&error]) {
                NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Failure" message:@"Unable to save team at the moment." delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil];
                [alert show];
                [alert release];            
            }
7
задан John Saunders 27 November 2011 в 21:13
поделиться