带有Swift规则的核心数据可选属性和属性

时间:2019-04-25 19:11:50

标签: swift core-data

Swift通过添加可选选项为开发人员带来了很好的机会,但是现在当我使用Core Data时,问题很少。

我使用API​​,该API从服务器返回一些对象,这些对象要映射到适当的Core Data对象,然后创建记录。

例如,我具有id,name,age属性,而这些都是我从服务器收到的非可选属性。

另一方面,我们可能处于服务器为我们返回某些财产的情况。但是,我们可以说这是ID属性发生的原因。

我的问题是,我们需要具有可选属性还是非可选属性,如何确定要使用哪个属性。目前,我所有的属性都是可选的,将其解包到任何地方都很烦人。也许最好创建验证器并防止插入任何空对象。

1 个答案:

答案 0 :(得分:1)

我认为,如果Apple的Swift团队阅读您的问题,他们会笑着说:“好问题!Swift如何帮助开发人员质疑和改进其代码的另一个示例。”

我的解决方法是:

  1. 让核心数据为核心数据。属性可以为空。如果正确的操作要求属性不为null,则您可能希望在插入之前对其进行验证。但是,由于Core Data是一个 persistence 框架,因此我假定这些对象已保存到磁盘,并且磁盘中的数据永远不应被信任……它可能已损坏,或某些无法预料的未来版本。您的应用程序或应用程序扩展程序可能有意或无意地导致某些属性为空。

  2. 让Swift成为Swift。 Swift的主要设计目标是保护您免受意外的null侵害。如您所知,不建议强制展开。而是使用if letguard let。这些是explained in Apple's Swift book,尽管您可以找到许多更重要的博客帖子like this one