gpt4 book ai didi

ios - Realm -iOS : Model object becomes nil when it's added to realm

转载 作者:搜寻专家 更新时间:2023-10-31 22:29:57 24 4
gpt4 key购买 nike

这是一个 RSS 阅读器应用程序。我实例化我的模型对象,对其调用 setupFavIcon() 以下载创建对象时为 nil 的 favIcon。然后我将每个对象添加到 Realm 。但是当实际获取图标时,self 为 nil,所以我无法更新应用程序的 UI。我不明白为什么 self 会变成 nil。

class Article: Object {
dynamic var source = ""
dynamic var title = ""
dynamic var link = ""
dynamic var pubDate = Date()
dynamic var favIcon: Data?

dynamic var favIconDidLoad: (() -> ())?

func setupFavIcon(_ source: String) {
DownloadManager.sharedInstance.downloadFavIcon(source) { [weak self] icon in
if let icon = icon {
self?.favIcon = icon
self?.favIconDidLoad?()
}
}
}

override class func primaryKey() -> String? {
return "link"
}

override class func ignoredProperties() -> [String] {
return ["favIconDidLoad"]
}
}

闭包 favIconDidLoad 在我的 TableViewCell 类中定义,并在下载 favIcon 时调用。

  fileprivate func setupFavIcon(_ article: Article) {
if let favicon = article.favIcon {
setFavIcon(favicon)
} else {
article.favIconDidLoad = { [weak self] in
self?.setFavIcon(article.favIcon)
}
}
}

最佳答案

您应该保持对 Article 对象的强引用。当您从 Realm 加载它们时,您需要将它们保存在数组中。如果您对来自 Realm 的结果进行操作,它们将在方法 TableViewCell setupFavIcon 结束时发布。

关于ios - Realm -iOS : Model object becomes nil when it's added to realm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40574803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com