我有Article
和Category
实体具有多对多关系。Category
有 aname
和 a imagePath
(保留其名称和该类别图标图像的路径)。
使用这个模型,我可以显示文章所属的类别名称(和类别的图像)。
问题
如果我想让用户更改类别图像(例如使用新图标包更改主题)我应该怎么做?
我现在在想的是创建单独的实体,ThemeItem
称为categoryId
imagePath
Category
ThemeItem
Article <<------------>> Category
- text - categoryId
- name
- categories(Relation) - articles(Relation
和
Theme <-->> ThemeItem
-themeId -categoryId
-themeName -imagePath
-theme(Relation)
使用这种方法,我将继续让用户通过设置界面选择主题并themeId
保持NSUserDefaults
有什么我应该关心的,或者有更好的方法来做这种事情吗?
检索图像
有了新模型,我只是从那里得到categoryId
的Category
,所以我必须抬头ThemeItem
才能得到imagePath
。这是NSPredicate
我想到的一些
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"ThemeItem" inManagedObjectContext:moc];
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:entityDescription];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"categoryId == %@ AND theme.themeId = %@", category_id_for_article, theme_id_from_user_defaults];
[request setPredicate:predicate];
有了这个谓词,我得到了ThemeItem
它imagePath