因此,由用户创建的海报使用Core Data存储在本地数据库中,而从服务器获取的海报仅应在应用中显示,但不保存在本地。我如何使用相同的Poster类(现在是NSManagedObject的子类)来处理这两种情况?
以下是我的类:
@interface Poster : NSObject
@property (nonatomic, retain) NSNumber * posterID;
@property (nonatomic, retain) NSString * artists;
@end
当我从服务器获取海报数组时,我会分配一个新的海报并分配属性:
Poster *poster = [[Poster alloc] init];
if ([dict objectForKey:@"id"]) poster.posterID = [dict objectForKey:@"id"];
if ([dict objectForKey:@"artists"]) poster.artists = [dict objectForKey:@"artists"];
但是当到达链接的poster.posterID = [dict etc etc时,应用程序会崩溃并出现以下错误:
终止应用程序,原因是未捕获的异常 'NSInvalidArgumentException',原因:'-[Poster setPosterID:]:向实例0xaa8b160发送无法识别的选择器'
如果我使用Poster *poster = [Poster createEntity];
创建新对象,而不是Poster *poster = [[Poster alloc] init];
,应用程序不会崩溃,但是当我保存上下文时,我发现从服务器获取的所有海报都已保存在本地。
我该怎么解决这个问题?