核心数据:使用临时属性来取得进展?

Posted

技术标签:

【中文标题】核心数据:使用临时属性来取得进展?【英文标题】:Core Data: Using a temporary property for progress? 【发布时间】:2011-02-11 21:09:23 【问题描述】:

我目前正在创建一个将文件上传到服务器的 ios 应用。由于可以对多个上传进行排队并且附加了我想要持久存储的元数据,因此我使用 Core Data 来建模和存储上传。我还使用NSFetchedResultsController 在表格视图中显示所有上传。到目前为止一切顺利。

我现在正在实施一个进度指示器,这就是我不确定我的实施是否真的是一个好主意的地方。我在我的模型中添加了一个float 属性,随着上传的进行,我的上传控制器会更新该属性。然后我在NSFetchedResultsControllerDelegate 的帮助下更新了我的UITableViewCell 子类,并且效果很好。然而,实际上持久地存储这个属性并没有什么意义,因为如果应用程序终止,上传将无法恢复。我只使用该属性来连接我的上传控制器和视图控制器。有没有更好的方法来做到这一点而不会失去NSFetchedResultsController 的便利性?

【问题讨论】:

所以您的问题是将当前的“进度”与其受人尊敬的 uitableviewcell 联系起来?你的方式看起来很公平(但我可以看到你认为它可能是矫枉过正,但想不出更好/更快的方式),但一个标签也可能就足够了(取决于我想的实现) 没错。使用 Core Data 让这件事变得非常简单,但我不确定它是否是处理这个问题的最合适/最优雅的方式。另外:退出应用程序后从商店中获取模型时,我需要手动重置进度属性。 【参考方案1】:

如果您在模型编辑器中将您的属性标记为 Transient,则意味着它不会存储在持久文件中。

每次加载 MO 时,该属性都会重置为默认值,但我不确定如果您不保留 MO 的特定实例,它们将在什么时候重置的规则

这家伙,http://2pi.dk/tech/cocoa/transient_properties.html 似乎知道。

【讨论】:

以上是关于核心数据:使用临时属性来取得进展?的主要内容,如果未能解决你的问题,请参考以下文章

asp.net的核心是啥

基础软件国产化替代取得重大进展——南方电网中间件国产化改造项目顺利通过验收

核心数据和托管对象上下文

在不使用表视图的情况下更新核心数据属性

仅针对临时构建和旧设备保存时核心数据崩溃

智能网联建设核心评价指标探讨