2011-04-27 4 views
0

[theSelectedRoutine addExerciseObject: exercise]; 메서드에서 -addExerciseObject를 찾을 수 없음 오류가 발생합니다.이 NSManaged 개체 오류가 발생하는 이유

인터페이스 : @property (nonatomic, retain) 루틴 * theSelectedRoutine;

-(void)addExercise 
{ 
    if (managedObjectContext == nil) 
    { 
     managedObjectContext = [(CurlAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; 
     [managedObjectContext retain]; 
    } 

    UIBarButtonItem *addButton = [[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(exerciseChooser)]; 
    self.navigationItem.rightBarButtonItem = addButton; 
    [addButton release]; 

    NSError *error = nil; 

    Exercise *exercise = (Exercise *)[NSEntityDescription insertNewObjectForEntityForName:@"Exercise" inManagedObjectContext:managedObjectContext]; 

    exercise.name = selectedExercise; 

    [theSelectedRoutine addExerciseObject: exercise]; 

    if (![managedObjectContext save:&error]) 
    { 
     // Handle the error. 
    } 
    NSLog(@"%@", error); 

    [self.routineTableView reloadData]; 

} 

..

Routine Class 
#import "Routine.h" 
#import "Exercise.h" 


@implementation Routine 
@dynamic name; 
@dynamic timeStamp; 
@dynamic routineExercises; 

- (void)addRoutineExercisesObject:(Exercise *)value {  
    NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value count:1]; 
    [self willChangeValueForKey:@"routineExercises" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects]; 
    [[self primitiveValueForKey:@"routineExercises"] addObject:value]; 
    [self didChangeValueForKey:@"routineExercises" withSetMutation:NSKeyValueUnionSetMutation usingObjects:changedObjects]; 
    [changedObjects release]; 
} 

- (void)removeRoutineExercisesObject:(Exercise *)value { 
    NSSet *changedObjects = [[NSSet alloc] initWithObjects:&value count:1]; 
    [self willChangeValueForKey:@"routineExercises" withSetMutation:NSKeyValueMinusSetMutation usingObjects:changedObjects]; 
    [[self primitiveValueForKey:@"routineExercises"] removeObject:value]; 
    [self didChangeValueForKey:@"routineExercises" withSetMutation:NSKeyValueMinusSetMutation usingObjects:changedObjects]; 
    [changedObjects release]; 
} 

- (void)addRoutineExercises:(NSSet *)value {  
    [self willChangeValueForKey:@"routineExercises" withSetMutation:NSKeyValueUnionSetMutation usingObjects:value]; 
    [[self primitiveValueForKey:@"routineExercises"] unionSet:value]; 
    [self didChangeValueForKey:@"routineExercises" withSetMutation:NSKeyValueUnionSetMutation usingObjects:value]; 
} 

- (void)removeRoutineExercises:(NSSet *)value { 
    [self willChangeValueForKey:@"routineExercises" withSetMutation:NSKeyValueMinusSetMutation usingObjects:value]; 
    [[self primitiveValueForKey:@"routineExercises"] minusSet:value]; 
    [self didChangeValueForKey:@"routineExercises" withSetMutation:NSKeyValueMinusSetMutation usingObjects:value]; 
} 


@end 

답변

1

그럼 난 addExerciseObject 중 하나를 볼 수 없습니다, 그것은 [theSelectedRoutine addRoutineExercisesObject:exercise]; 안?

+0

나는 그 역시 시도했지만, 나는 여전히 같은 오류가 발생합니다. 메소드 -addRoutineExercisesObject를 찾을 수 없다는 메시지가 표시됩니다 (반환 유형의 기본값은 'id'). –

+0

은'.h' 파일에서이 메소드의 프로토 타입입니까? – MByD

+0

아니요. 오류가 지금 바로 끝났습니다. 나는 그들이 .h 자동으로 메소드를 생성했을 것이라고 생각했을 것이다. –

관련 문제