我的blogData和论坛的coreData模型中有很多关系。每个论坛都可以有多个博客,每个博客都可以属于多个论坛。
我想为博客设置一个独特的bool属性,但这个属性会在每个论坛中有所不同。
是否可以为博客/论坛组合设置多对多的属性?即blogSeen bool变量,对于每个博客/论坛关系都是唯一的。
答案 0 :(得分:0)
仅使用Core Data模型中的两个实体无法实现您正在寻找的解决方案。一种解决方案是添加一个额外的实体,用于映射Blog
和Forum
之间的另一个关系,以便在读取/查看项目时进行跟踪。
例如,请考虑以下事项:
在此模型中,添加了Viewed
实体。 Viewed
实体与Blog
和Forum
具有一对一的关系。 Blog
/ Forum
个实体与Viewed
对象的关系是反向的。
每次为特定Blog
Forum
Viewed
实体查看/查看/阅读时,都应创建Blog
。 Forum
实体中的Viewed
/ Forum
配对应该是唯一的。这将允许您跟踪每个论坛的博客的已读/未读状态。
为此目的,这是extension Forum {
public var readBlogs: [Blog] {
guard let viewed = self.inverseViewed as? Set<Viewed> else {
return []
}
var blogs = [Blog]()
viewed.forEach { (viewed) in
if let blog = viewed.blog {
blogs.append(blog)
}
}
return blogs
}
public var unreadBlogs: [Blog] {
guard let allBlogs = self.blogs as? Set<Blog> else {
return []
}
var unreadBlogs = Array(allBlogs)
self.readBlogs.forEach { (blog) in
if let index = unreadBlogs.index(of: blog) {
unreadBlogs.remove(at: index)
}
}
return unreadBlogs
}
}
的简单扩展。
m*x"(t) + d*x'(t) + k*x(t) = y(t)