Como usar modelos Core Data sem salvá-los?
Estou escrevendo um aplicativo e estou usando o MagicalRecord como uma estrutura para interagir com o Core Data. O aplicativo busca uma matriz de pôsteres de um servidor e, em seguida, os exibe. Cartazes também podem ser criados no aplicativo e, em seguida, enviados para o servidor, se o usuário exigir.
Assim, os pôsteres criados pelo usuário são armazenados no banco de dados local usando o Core Data, enquanto os pôsteres obtidos do servidor só devem ser exibidos no aplicativo, mas não salvos localmente. Como posso usar a mesma classe Poster (que agora é uma subclasse de NSManagedObject) para lidar com esses dois casos?
Aqui está minha aula:
@interface Poster : NSObject
@property (nonatomic, retain) NSNumber * posterID;
@property (nonatomic, retain) NSString * artists;
@end
Quando busco o array de posters do servidor, eu aloco um novo pôster e, em seguida, atribuo atributos:
Poster *poster = [[Poster alloc] init];
if ([dict objectForKey:@"id"]) poster.posterID = [dict objectForKey:@"id"];
if ([dict objectForKey:@"artists"]) poster.artists = [dict objectForKey:@"artists"];
Mas ao alcançar o poster.posterID vinculado = [dict etc etc o aplicativo falha com este erro
Aplicativo de finalização devido à exceção não identificada 'NSInvalidArgumentException', razão: '- [Poster setPosterID:]: seletor não reconhecido enviado para a instância 0xaa8b160'
Se eu criar o novo objeto comPoster *poster = [Poster createEntity];
ao invés dePoster *poster = [[Poster alloc] init];
, o aplicativo não falha, mas quando eu salvo o contexto, eu encontro todos os cartazes obtidos do servidor são salvos localmente.
Como posso resolver isso?