コアデータを初めて使用しているため、いくつか質問があります。私は2つ質問しますコアデータを挿入して複数のリレーションエンティティをフェッチする
1)TeamとTeamMembersの2つのエンティティがあります。それらは多対多の関係、すなわち1つのチームが多くのメンバーを有することができる。最初に、モデルとそのモデルの.hファイルを次のように見て、私がチームとチームメンバーの間に正しい関係を作っているかどうかを教えてください。
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)私はそのチームメンバーを挿入し、その後チームを挿入するためのサンプルコードが必要になります。また、特定のチームのチームメンバーを取得する方法。
EDITED 私はチームとチームメンバーのエンティティに挿入する次のコードを使用していますが、それは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];
}
感謝。特定のチームのTeamMembersに挿入の例を示してください。 –
複数のものではなく単数のオブジェクトとしてあなたのエンティティに名前を付けることもできます。 「Team」と「TeamMember」ではなく「Team」と「TeamMember」です。 –
サンプルコードを表示していただきありがとうございます。チームメンバーのNSSetをチームに追加する方法も示してください。 –