CoreData - como criar uma subclasse de uma subclasse de NSManagedObject (padrão de gap de geração)

Tenho certeza de que deve ser uma pergunta estúpida, mas vasculhei as inter-redes e não consigo encontrar a resposta. Muitas pessoas falam sobre o uso do padrão de gap de geração, no qual você tem uma subclasse NSManagedObject que é gerada a partir do seu modelo e, em seguida, na subclasse para adicionar propriedades e comportamentos transitórios. A vantagem disso é que, se você alterar seu modelo persistente, poderá gerar seus arquivos de base novamente sem o risco de sobrescrever seu próprio códig

Eu tenho um objeto CardMO base derivado de NSManagedObject. Subclasse isso para criar meu próprio objeto Card.

minha pergunta é: como faço para criar um objeto Card que é gerenciad

Eu tentei

  Card* card = [NSEntityDescription insertNewObjectForEntityForName:@"CardMO" inManagedObjectContext:moc];

Mas este objeto não é realmente um cartão e, é claro, há uma exceção quando eu chamo um método de cartão nesse objet

Tentei criar um cartão com aloc / init (onde init chama apenas [super init]) e, em seguida, adicioná-lo ao managedObjectContext assim:

[moc insertObject:(CardMO*)card];

Isso me dá o erro enigmático "Falha ao chamar o inicializador designado na classe NSManagedObject 'Card'"

Tentei modificar isso chamando [NSEntityDescription insertNewObjectForEntityForName: @ "CardMO" inManagedObjectContext: [AIStoreManager sharedAIStoreManager] .managedObjectContext] em vez de [super init]. Nesse caso, o objeto que eu volto é novamente um CardMO e não posso chamar métodos de cartão nel

O que devo fazer?

E (para pontos de bônus :-) - depois de ultrapassar esse obstáculo, preciso criar meus outros objetos Card a partir de XML e transformá-los em NSManagedObjects. Estou usando um código baseado no XMLReaderSAX da Apple - entrego a esse código um pedaço de XML e ele me devolve uma matriz de muitos objetos Card. Posteriormente, posso adicionar esses objetos ao meu contexto de objeto gerenciado ou preciso entrar no XMLReaderSAX e alterar como ele cria esses objetos?

Estou escrevendo um aplicativo para iPhone no 3.0, mas presumo que esse seja o mesmo para o Core Data para 10.

questionAnswers(4)

yourAnswerToTheQuestion