Quais são as diferenças funcionais entre o CodeGen da Coredata 'manual / none + create a subclasse NSManagedObject' vs. 'category / extension'

Eu liSubclassing NSManagedObject com swift 3 e Xcode 8 beta e leiaist ótimo tutorial. Ainda tem dúvidas sobre alguns pontos.

As semelhanças são: Eu posso personalizar as duas classes da maneira que eu quise Eu posso adicionar novos atributos ou remover ou renomear atributos. ou seja, paracategory/extension será atualizado com uma nova compilação (nos dados derivados) e, no caso demanual/none deixará o arquivo de classe intacto e atualizará a extensão na navegação de arquivos, ou seja, não terminarei com um arquivo duplicado. Isso tudo é tratado pelo Xcode porque eles são marcados com um pré-processador@NSManaged Despejando algo como@NSManaged public var name: String? direto para um @ existenNSManagedObject subclasse não é permitida. Eu tentei fazerentity.name = "John" mas recebi o seguinte erro:reason: '-[SomeEntity setName:]: unrecognized selector sent to instance 0x60400009b120'. Eu acredito que isso é razoável. Acho que sem o uso do Core Data Model Editor, os métodos acessadores setter / getter não são criadoAs diferenças são:ParaCategory/Extension você só precisa criar a classe e adicionar quaisquer funções / propriedades extras necessária

ParaCategory/Extension os atributos são criados em dados derivados, o que é suficiente. Porque você nunca precisa ver esse arquivo. Sua existência é suficiente para fazer as coisas funcionare

E especificamente no contexto de fazeraltera às suas propriedades NSManaged:

Alterando o tipo de propriedade, p.NSDate paraDate é permitido apenas paraManual/None. ExemploAqu

Alterar a opção de um tipo, p.String? paraString é permitido apenas paraManual/None. ExemploAqu

Alterar um nível de acesso à propriedade, p. a partir depublic paraprivate é permitido apenas paraManual/None. ExemploAqu

Tendo dito que há diferença significativaE s Eu escolhoManual/None codegen e mas don't selecione 'criar subclasse NSManagedObject'. Nesse caso, eu comecei a escrever todo o código (subclasse de NSManagedObject e escrevo NSManaged para todas as propriedades) ... ou, se eu não escrever todo esse código, ainda posso acessar / definir campos usando o KVC, o que é estranho!

Em poucas palavras, estou apenas tentando descobrir a extensão total dos recursos que posso obter usandoManual/None.

Questão Além dos 9nota que eu preciso saber se validei corretamente, um importantequestã seria: como me mudarNSDate paraDate ou opcional ou não opcional, não quebre os mapeamentos entre minha classe NSManagedObject e meu gráfico de objetos enquanto altera umNSDate propriedade paraString quebra !! Isso tem algo a ver com coisas que garantiram a transmissão entre Swift e Objective-C, ou seja, coisas que podem ser transmitidas através deas - sem? ou!?

questionAnswers(1)

yourAnswerToTheQuestion