나는이 간단한 코어 데이터 모델을했습니다 :관계 집합에 새 관리 대상 개체를 추가 할 때 내 앱이 충돌하는 이유는 무엇입니까?
질문,
답변 모든 모든 질문 4 답변이 있습니다. 내가 addAnswersObject있는 질문에 대한 답을 추가하려고 할 때 문제가 Question.m
@interface Question : NSManagedObject
{
}
@property (nonatomic, retain) NSString * questionText;
@property (nonatomic, retain) NSSet* answers;
@property (nonatomic, retain) Package * package;
@end
@interface Question (CoreDataGeneratedAccessors)
- (void)addAnswersObject:(NSManagedObject *)value;
- (void)removeAnswersObject:(NSManagedObject *)value;
- (void)addAnswers:(NSSet *)value;
- (void)removeAnswers:(NSSet *)value;
@end
Answer.m
@class Question;
@interface Answer : NSManagedObject
{
}
@property (nonatomic, retain) NSString * answerText;
@property (nonatomic, retain) NSNumber * correct;
@property (nonatomic, retain) Question * question;
@end
:
코드는 다음과 같다.
for (CXMLElement *theElement in theNodes)
{
Question *qst = [NSEntityDescription insertNewObjectForEntityForName:@"Question" inManagedObjectContext:moc];
// Create a counter variable as type "int"
int counter;
// Loop through the children of the current node
for(counter = 0; counter < [theElement childCount]; counter++) {
if([[[theElement childAtIndex:counter] name] isEqualToString: @"question"])
[qst setQuestionText:[[theElement childAtIndex:counter] stringValue]];
if([[[theElement childAtIndex:counter] name] isEqualToString: @"answer"]) {
Answer *answer = [NSEntityDescription insertNewObjectForEntityForName:@"Answer" inManagedObjectContext:moc];
[answer setAnswerText:[[theElement childAtIndex:counter] stringValue]];
CXMLElement *answerElement = (CXMLElement *)[theElement childAtIndex:counter];
if([[[answerElement attributeForName:@"correct"] stringValue] isEqualToString:@"YES"]) {
[answer setCorrect:[NSNumber numberWithBool:YES]];
} else {
[answer setCorrect:[NSNumber numberWithBool:NO]];
}
[qst addAnswersObject:answer]; //The app crash here
}
}
이 콘솔에서 로그는 다음과 같습니다 :
이
앱 충돌 코드의 일부이다2010-05-24 20 : 02 : 38.475 Fgq [5670 : 40b] *** - [NSUserDefaults objectForKey :] : 할당 해제 된 인스턴스로 메시지가 전송되었습니다. 0x3c179a0 프로그램 수신 신호 : "EXC_BAD_ACCESS".
개체 데이터 모델에서 모든 개체를 여러 번 다시 가져 왔지만 모든 관계를 확인한 결과 모든 것이 괜찮은 것 같습니다.
어떤 종류의 문제 일 수 있습니까?
내가보고 한 내용을 추가했습니다. – bontoJR