如何检查实体是否与另一个实体相关

时间:2013-05-15 22:11:15

标签: ios xcode cocoa-touch core-data

我是Core Data的新手

我有两个与Routine.exercise和Exercise.routine相关的实体RoutineExercise。 用户例程有一个名称,用户练习也是如此。

我试过了 并尝试了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建立了关系。有人可以帮我解决这个问题吗?

是多对多的关系

enter image description here

2 个答案:

答案 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];