внутренняя ошибка несоответствия с основными отображениями данных - PullRequest
1 голос
/ 01 августа 2011

Я получаю следующую ошибку:

*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Illegal container for relationship: value = (
    "<CVStar: 0x6a2e990> (entity: CVStar; id: 0x6a2e980 <x-coredata:///CVStar/t20E391D3-6FA6-4521-84FE-EAA9469E012029> ; data: {\n    \"date_created\" = \"1312050431.973905\";\n    message = nil;\n    user = \"0x6a2be10 <x-coredata:///CVLogin/t20E391D3-6FA6-4521-84FE-EAA9469E012030>\";\n})",
    "<CVStar: 0x6a2aca0> (entity: CVStar; id: 0x6a2b0d0 <x-coredata:///CVStar/t20E391D3-6FA6-4521-84FE-EAA9469E012031> ; data: {\n    \"date_created\" = \"1312011314.591517\";\n    message = nil;\n    user = \"0x6a36490 <x-coredata://B8EAEF54-AC90-46F0-B442-93077B937C3F/CVLogin/p28>\";\n})"
); relationship = "stars".'

Есть идеи, как это отладить? У меня есть класс CVMessage, у которого есть NSArray из CVStar. Я установил отношение к модели от CVMessage как один ко многим к CVStar (CVMessage может иметь много CVStar). Это, однако, не работает, как это вообще возможно?

Вот код:

@class CVLogin;
@class CVTopic;

@interface CVMessage : NSManagedObject {

}

@property (nonatomic, retain) NSNumber * date_created;
@property (nonatomic, retain) NSString * message;
@property (nonatomic, retain) NSNumber * mid;
@property (nonatomic, retain) CVLogin * creator;
@property (nonatomic, retain) NSArray * stars;
@property (nonatomic, retain) NSArray * embeds;
@property (nonatomic, retain) CVTopic * topic;
@property (nonatomic, assign) BOOL options;

@end

@interface CVStar : NSManagedObject {

}

@property (nonatomic, retain) NSNumber * date_created;
@property (nonatomic, retain) CVLogin * user;

@end

несколько скриншотов, если это помогло

enter image description here

1 Ответ

7 голосов
/ 01 августа 2011

NSManagedObjects не может иметь NSArray в качестве типа свойства, так как Core Data не поддерживает его.Вместо этого используйте NSSet, который должен описывать отношения.Если вы должны упорядочить данные, добавьте свойство, которое описывает порядок ваших объектов.Кроме того, имейте в виду, что Core Data - это гораздо больше, чем постоянное хранилище, а не база данных SQL.Вам будет намного лучше, если вы не будете думать о вещах как о строках и столбцах, а как об объектах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...