Базовые данные необязательные атрибуты и свойства с правилами Swift - PullRequest
1 голос
/ 25 апреля 2019

Swift предоставил хорошую возможность для разработчиков, добавив дополнительные функции, но теперь, когда я использую Core Data, у меня возникает несколько проблем.

Я использую API, который возвращает серверу некоторые объекты, которые я хочу сопоставить с соответствующими Core Dataобъекты, а затем создавать записи.

Например, у меня есть свойства id, name, age, и это все необязательные свойства, которые я получаю с сервера.

В другой руке мы можем быть наСитуация, когда сервер возвращают за нами какую-то недвижимость.Но допустим, что это произошло как-то со свойством id.

Мой вопрос: нужны ли нам необязательные или необязательные свойства, чтобы определить, какое из них использовать.В настоящее время все мои свойства являются дополнительными, и это раздражает, чтобы развернуть его везде.Может быть, лучше создать валидатор и предотвратить вставку любых нулевых объектов.

1 Ответ

1 голос
/ 26 апреля 2019

Я думаю, что если команда Swift в Apple прочитает ваш вопрос, они улыбнутся и скажут: «Хороший вопрос! Еще один пример того, как Swift помогает разработчикам задавать вопросы и улучшать свой код».

Мойподход к этому таков:

  1. Пусть базовые данные являются базовыми данными. Атрибуты могут быть нулевыми.Если для правильной работы требуется, чтобы атрибут был не нулевым, вы можете проверить это до вставки.Но, поскольку Базовые Данные - это структура persistence , я предполагаю, что эти объекты сохраняются на диск, и данные с диска никогда не следует доверять ... это может быть повреждено, или какая-то непредвиденная будущая версия вашегоприложение или расширение приложения может преднамеренно или непреднамеренно приводить к тому, что некоторые атрибуты будут иметь нулевое значение.

  2. Пусть Swift будет Swift. Основной целью Swift была защита вас.от таких неожиданных нулей.Как вы поняли, распаковка силой не рекомендуется.Вместо этого используйте if let или guard let.Это объяснено в книге Apple Swift , хотя вы можете найти десятки постов в блогах , подобных этой , которые более важны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...