核心数据:使用临时属性来取得进展?
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 似乎知道。
【讨论】:
以上是关于核心数据:使用临时属性来取得进展?的主要内容,如果未能解决你的问题,请参考以下文章