2014-03-30 5 views
1

나는이처럼 보이는 사용자 지정 NSManagedObject 클래스가 있습니다.NSManagedObject 사용자 지정 클래스 --NSInvalidArgumentException 알 수없는 선택기 -

#import <Foundation/Foundation.h> 
#import <CoreData/CoreData.h> 

@class Ingredient, MenuCategory, Price, ItemSize; 

@interface Item : NSManagedObject 

@property (nonatomic, retain) NSNumber * collected; 
@property (nonatomic, retain) NSString * desc; 
@property (nonatomic, retain) NSString * instructions; 
@property (nonatomic, retain) NSString * name; 
@property (nonatomic, retain) NSNumber * quantity; 
@property (nonatomic, retain) NSNumber * selected; 
@property (nonatomic, retain) MenuCategory *menuCategory; 
@property (nonatomic, retain) NSSet *prices; 
@property (nonatomic, retain) NSSet *itemSizes; 
@property (nonatomic, retain) NSSet *itemIngredients; 


-(NSMutableSet *)mutablePrices; 
-(NSMutableSet *)mutableItemIngredients; 

@end 

#import "Item.h" 
#import "Ingredient.h" 
#import "MenuCategory.h" 
#import "Price.h" 
#import "ItemSize.h" 


@implementation Item 

@dynamic collected; 
@dynamic desc; 
@dynamic instructions; 
@dynamic name; 
@dynamic quantity; 
@dynamic selected; 
@dynamic itemIngredients; 
@dynamic menuCategory; 
@dynamic prices; 
@dynamic itemSizes; 


-(NSMutableSet *)mutablePrices{ 

    return [self mutableSetValueForKey:@"prices"]; 
} 

-(NSMutableSet *)mutableItemIngredients{ 

    return [self mutableSetValueForKey:@"itemIngredients"]; 
} 

@end 

아무것도 너무 특별하다. 다음은 올바르게 작동해야합니까 ???

[item.mutablePrices addObject:newPrice] 

하지만 내게

[[item mutableSetValueForKey:@"prices"] addObject:newPrice]; 

가 잘 작동 다음 작업을 수행 할 때

2014-03-30 10:25:34.594 restos[1192:60b] -[NSManagedObject mutablePrices]: unrecognized selector sent to instance 0xe8d72c0 
2014-03-30 10:25:34.597 restos[1192:60b] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSManagedObject mutablePrices]: unrecognized selector sent to instance 0xe8d72c0' 

가 BUT --- I 아는 같은 오류를 부여하지 않으며 어떤 이유로 SIMPLE 무언가 내가 볼 수 없음 ----

감사합니다.

답변

2

오류 메시지

-[NSManagedObject mutablePrices]: unrecognized selector sent to instance 0xe8d72c0 

item 객체가 Item 클래스의 인스턴스가 아닌 것을 나타냅니다. 가능한 원인은 핵심 데이터 모델 관리자의 클래스의 항목을 "항목"으로 설정하지 않았기 때문일 수 있습니다.

일반적으로 Xcode에서 편집 메뉴의 NSManagedObject 하위 클래스 파일을 생성하고 클래스 범주에 사용자 지정 메서드를 추가하면 오류가 발생하지 않습니다. 또는 "mogenerator"을 사용하십시오.