我是Core Data的新手
我有两个与Routine.exercise和Exercise.routine相关的实体Routine
和Exercise
。
用户例程有一个名称,用户练习也是如此。
我试过了
并尝试了jsut Routine.exercise = Exercise
,但这给了我一个警告说Comparision of distinct pointer type (NSSET and Exercise)
,我也试着做Routine.exercise.name = @"theName"
,但我正在推动它,因为我不能得到像这样的运动的名字... < / p>
if (Routine.exercise == Exercise.routine) {
NSLOG(@"YES");
} else {
NSLOG(@"NO");
}
基本上我只是想知道运动是否与Routine建立了关系。有人可以帮我解决这个问题吗?
是多对多的关系
答案 0 :(得分:2)
尝试这样的事情:
获取您要测试的对象
Routine *testRoutine = ...;
Exercise *testExercise = ...;
检查练习是否包含在关系
中的对象集中if ([testRoutine.exercise containsObject:testExercise]) {
...
}
答案 1 :(得分:0)
由于这是多对多关系,因此您无法使用Routine.exercise = Exercise
,因为该关系是NSMutableSet。以下是将对象添加到关系的正确方法:
NSMutableSet *rel = [routineObject mutableSetValueForKey:@"exercise"];
[rel addObject:exerciseObject];