2010-05-24 2 views
0

Я эта простая Co, модель данных:Почему мое приложение разбивается, когда я добавляю новый управляемый объект в набор отношений?

Вопрос, Ответ

Каждого каждый вопрос имеет 4 ответов.

Код следующее: 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 

Проблема заключается в том, когда я пытаюсь добавить ответ на вопрос с addAnswersObject.

Это часть кода, аварии приложение:

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».

Я повторно экспортировал много раз все объекты из модели данных объекта без успеха, я проверил все отношения и кажется, что все в порядке.

Какая проблема может быть?

ответ

0

Что сообщает Консоль, если вы добавили NSLog(@"qst: %@:, qst); сразу после вызова qst экземпляра -insertNewObjectForEntityName:inManagedObjectContext:?

Что сообщает Консоль, если вы добавили NSLog(@"answer: %@:, answer); сразу после вызова экземпляра -insertNewObjectForEntityName:inManagedObjectContext:?

+0

добавил, что сообщается ... – bontoJR

0

Здесь сообщается с NSLog (@ "qst:% @", qst);

2010-05-24 23: 37: 33,948 FGQ [452: 207] QST: (юридическое лицо: Вопрос; ID: 0x3c19ab0 ; данные: { ответы = ( ); пакет = nil; questionText = nil;})

Смежные вопросы