Size: a a a

iOS Developers — русскоговорящее сообщество

2020 June 05

KK

Kirill Kirillenko in iOS Developers — русскоговорящее сообщество
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
Kirill Rudenko
других вариантов нет? но этот тоже хорош, что-то не подумал, спасибо
варианты есть всегда, но не вижу смысла их придумывать
источник

KR

Kirill Rudenko in iOS Developers — русскоговорящее сообщество
👍🏻
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
Kirill Kirillenko
Друзья, всем привет.
Столкнулся с проблемой: Не знаю, как разрушить бесконечную рекурсию.

История такая: есть классы реалма "Категория" и "Транзакця" и их аналоги в виде структур.
Далее есть класс "Репозиторий", оборачивающий реалм.

Когда репозиторий запускает метод Fetch, то он преобразовывает класс реалма в структуру с бизнес логикой. Проблема в том, что Категория и Транзакция ссылаются друг на друга по задумке, и при процессе конвертирования запускается бесконечный цикл пробразований: Категория вызывает маппинг у Транзакции, потом наоборот и так до бесконечности.

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

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
кроме того, следует изменить структуры на классы и хранить weak ссылки
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
кроме того, рекомендую использовать вычисляемые значения вместо хранения и выставления оных при установке зависимых свойств
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
есть еще вариант отказаться от хранения связей в виде ссылок и хранить идентификаторы, поместив объекты в какой-нибудь кэш откуда их можно по этому самому идентификатору доставать
источник

KK

Kirill Kirillenko in iOS Developers — русскоговорящее сообщество
Последний вариант мне нравится. Вычисляемые значения не могу использовать, к сожалению. Потому что связи чуть позже я могу менять
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
вычисляемые значения это я имел ввиду Category.icon, Category.color
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
кажется это просто фасады для categorytype
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
хотя мне в целом не понятна эта затея. для чего ты вводишь некоторые адаптеры на моделью, почему бы не использовать ее напрямую
источник

KK

Kirill Kirillenko in iOS Developers — русскоговорящее сообщество
Denis Kim
хотя мне в целом не понятна эта затея. для чего ты вводишь некоторые адаптеры на моделью, почему бы не использовать ее напрямую
Ты имеешь ввиду, почему бы не использовать обьекты реалма?
источник

KK

Kirill Kirillenko in iOS Developers — русскоговорящее сообщество
Напрямую
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
да
источник

KK

Kirill Kirillenko in iOS Developers — русскоговорящее сообщество
Для того, чтобы не было привязки к конкретной базе данных. Сегодня это реалм, завтра, например, кордата, либо вообще JSON.
При переходе не нужно будет менять во всем приложений тип данных, а только поменять репозиторий и процесс маппинга переписать
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
ты хоть раз менял базу?
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
но вообще это вполне решается протоколами
источник

AB

Anton Burkin in iOS Developers — русскоговорящее сообщество
Так это, сделай протокол Repo<T>
источник

AB

Anton Burkin in iOS Developers — русскоговорящее сообщество
Это же классический паттерн.
источник

AB

Anton Burkin in iOS Developers — русскоговорящее сообщество
источник