Основные данные и @dynamic - PullRequest
0 голосов
/ 05 июля 2011

Я новичок в Core Data, и есть некоторые проблемы, которые я еще не понимаю.

У меня есть объект под названием GCS (подкласс NSManagedObject для Core Data):

@implementation GCS

@dynamic eye;
@dynamic ...
@dynamic ...

Он отлично работает с Core Data, когда я делаю это:

GCS *failedBankDetails = [NSEntityDescription
                                        insertNewObjectForEntityForName:@"GCS" 
                                        inManagedObjectContext:context];

failedBankDetails.eye = [NSNumber numberWithInt:12];

Но тогда в другом классе у меня есть свойство типа GCS:

@interface ModelManager : NSObject 
{
    GCS *tempGCS;
}

@property (nonatomic, retain) GCS *tempGCS;
...

В методеModelManager Я попробовал это:

tempGCS.eye = [NSNumber numberWithInt:0];

Но возникли исключения: Не удалось вызвать назначенный инициализатор для класса NSManagedObject 'GCS' - [GCS setEye:]: нераспознанный селектор, отправленный экземпляру 0x4d32ac0

Почему я не могу использовать точечную запись сейчас?Я думаю, что @dynamic - ключ, но я не должен менять его, потому что мне нужно использовать его для Core Data, верно?

Пожалуйста, помогите мне и извините за мой английский.Спасибо!

1 Ответ

2 голосов
/ 05 июля 2011

Точечная запись не имеет к этому никакого отношения, вы получите ту же ошибку, если позвоните [tempGCS setEye:...]. Ошибка в том, что вы забыли вызвать initWithEntity:insertIntoManagedObjectContext: при создании объекта в tempGCS; в частности, [[GCS alloc] init] будет не работать правильно.

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