<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Diffable Data Source on Kelly Dev</title><link>https://kelly-chui.github.io/tags/diffable-data-source/</link><description>Recent content in Diffable Data Source on Kelly Dev</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 20 Jan 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://kelly-chui.github.io/tags/diffable-data-source/index.xml" rel="self" type="application/rss+xml"/><item><title>SniffMEET. Diffable Data Source에서 이미지가 갱신되지 않은 이유</title><link>https://kelly-chui.github.io/posts/sniffmeet-dev-log-diffable-data-source-image-update/</link><pubDate>Mon, 20 Jan 2025 00:00:00 +0000</pubDate><guid>https://kelly-chui.github.io/posts/sniffmeet-dev-log-diffable-data-source-image-update/</guid><description>&lt;h2 id="들어가며"&gt;들어가며&lt;/h2&gt;
&lt;p&gt;SniffMeet의 메이트 리스트 화면은 &lt;code&gt;UITableViewDataSource&lt;/code&gt;를 직접 구현해서 셀을 구성하고 있었다. 이후 테이블 뷰와 컬렉션 뷰에서 Diffable DataSource를 사용해보기로 했고, 먼저 메이트 리스트 화면에 적용해보려고 했다.&lt;/p&gt;
&lt;p&gt;처음에는 어렵지 않을 거라고 생각했다. 섹션과 아이템 타입을 만들고, snapshot을 적용하면 기존 &lt;code&gt;reloadData()&lt;/code&gt;보다 깔끔하게 업데이트할 수 있을 것 같았다. 하지만 실제로는 이미지 갱신이 제대로 동작하지 않았다. 더 정확히는 프로필 이미지 데이터는 받아오는데, Diffable DataSource가 셀을 다시 구성할 때는 이미지가 계속 &lt;code&gt;nil&lt;/code&gt;로 남아 있었다.&lt;/p&gt;
&lt;p&gt;결국 이 작업은 성공적으로 마무리하지 못했다. 그래도 실패한 이유를 다시 정리해보니, 문제는 Diffable DataSource API 자체가 아니라 item의 identity와 표시 상태를 제대로 구분하지 못한 데 있었다.&lt;/p&gt;</description></item></channel></rss>