Objective c 将键值观测(KVO)与集合一起使用
我想观察一个名为Objective c 将键值观测(KVO)与集合一起使用,objective-c,swift,Objective C,Swift,我想观察一个名为savedArticles的属性。现在,它被声明为控制器类型对象的属性集,如下所示: @objc dynamic var savedArticles: Set<Article> = [] KVO可观测集是一个非常糟糕的想法,但链接中的讨论将阐明这一点。最好向我们解释一下您真正想解决的问题。@matt谢谢您的反馈。很抱歉这篇文章写得不好。如果你有时间,我想听听你的建议。我有一个名为ArticleController的类。在这个类中,我有一个名为savedArticle
savedArticles
的属性。现在,它被声明为控制器类型对象的属性集,如下所示:
@objc dynamic var savedArticles: Set<Article> = []
KVO可观测集是一个非常糟糕的想法,但链接中的讨论将阐明这一点。最好向我们解释一下您真正想解决的问题。@matt谢谢您的反馈。很抱歉这篇文章写得不好。如果你有时间,我想听听你的建议。我有一个名为
ArticleController
的类。在这个类中,我有一个名为savedArticles
(集合)的属性。名为SavedArticlesTableViewController
的视图控制器希望了解保存新项目的任何时间,以便刷新其表。我想我可以通过发送一个简单的通知来实现这一点。因此,我观察到对savedArticles
的任何更改,我的观察者(表视图)会重新加载自己。那么为什么不使用setter观察者呢?你需要KVO做什么?或者为什么不将变量设置为私有,并将setter设置为公共?谢谢。我才意识到你是谁,我只想说我喜欢你的书。我预定了深入亚马逊的Ios13。
class Article: Hashable {
static func == (lhs: Article, rhs: Article) -> Bool {
return lhs.title == rhs.title && lhs.date == rhs.date && lhs.author == rhs.author
}
func hash(into hasher: inout Hasher) {
title.hash(into: &hasher)
date.hash(into: &hasher)
author.hash(into: &hasher)
}
var title: String?
var author: String?
var description: String?
var date: String?
}