2013-06-18 5 views
1

저는 Core Data를 사용하여 새로 왔습니다. 클래스 (NSManagedObject의 하위 클래스) 채팅 및 새 개체를 만들어야합니다.NSManagedObject에 속성을 설정할 수 없습니다.

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

@interface Chat : NSManagedObject 

@property (nonatomic, retain) NSString *chatID; 
@property (nonatomic, retain) NSString *modified; 
@property (nonatomic, retain) NSString *opponentID; 
@property (nonatomic, retain) NSString *opponentFacebookID; 
@property (nonatomic, retain) NSString *opponentName; 
@property (nonatomic, retain) NSString *lastMessage; 

@end 

#import "Chat.h" 

@implementation Chat 

@dynamic chatID; 
@dynamic modified; 
@dynamic opponentID; 
@dynamic opponentFacebookID; 
@dynamic opponentName; 
@dynamic lastMessage; 

- (id)init { 
    if (self = [super init]) 
    { 
    } 
    return self; 
} 

@end 

나는이 같은 개체를 삽입 :

Chat *chat = (Chat *)[NSEntityDescription insertNewObjectForEntityForName:@"Chat" inManagedObjectContext:[[DataManager sharedInstance] managedObjectContext]]; 
chat.chatID = [chatDict objectForKey:@"id"]; 
chat.modified = [chatDict objectForKey:@"modified"]; 
chat.lastMessage = [chatDict objectForKey:@"last_message"]; 

하지만 내 응용 프로그램이 충돌 chat.chatId 설정. 그것은 나에게이 오류를 보여주고 그것을 해결하기 위해 무엇을해야 하는지를 알 수 없다! 아마도 코어 데이터 모델 관리자에 정의 된 chatID은 호텔의 실제 이름이 아닌 것을 의미

2013-06-18 12:01:25.625 MyApp[5477:907] -[Chat setChatID:]: unrecognized selector sent to instance 0x1d8661d0 
2013-06-18 12:01:25.627 MyApp[5477:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Chat setChatID:]: unrecognized selector sent to instance 0x1d8661d0' 
+2

'init' 메소드를 제거하십시오. [이 답변] (http://stackoverflow.com/questions/10489578/custom-initializer-for-an-nsmanagedobject)도 도움이 될 것입니다 – Alladinian

+0

@Alladinian : 당신 말이 맞아요, 그 또한 문제를 일으킬 수 있습니다. –

답변

1

.

Xcode (또는 "mogenerator"와 같은 도구)가 관리 대상 하위 클래스 파일 을 "수동으로"작성하는 대신 생성하도록 항상 권장합니다.

+0

그게 다야! 내 모델에는 클래스의 다른 속성 이름이 있습니다. 자동으로 수업을 다시 생성했습니다. 감사! – CainaSouza

+0

@CainaSuza : 오신 것을 환영합니다! –

1

인식 할 수없는 선택기 란 앱이 가지고 있지 않은 기능을 수행하도록 객체에 지시하려고했음을 의미합니다 (예 : 라벨의 이미지 수정 시도, 이미지 속성이 없으므로 인식 할 수없는 선택기가 표시됨) . 오류 메시지에서 존재하지 않는 setChatID를 사용하려고했습니다. 이 컴퓨터에 내 xcode 프로젝트가 없으므로 핵심 데이터 샘플을 확인할 수 없지만 대화 개체를 다시 작성하고 GUI를 사용하여 필요한 특성을 만든 다음 자동으로 클래스를 만드는 것이 좋습니다. 제가 더 많은 것을 돕기를 원한다면 알려주고, 다른 컴퓨터를 가지고있을 때 나중에 다시 확인하겠습니다.

관련 문제