<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Preview &#8211; 隨心所欲</title>
	<atom:link href="https://doeverythingiwant.com/tag/preview/feed/" rel="self" type="application/rss+xml" />
	<link>https://doeverythingiwant.com</link>
	<description>iOS Developer 的隨筆記錄</description>
	<lastBuildDate>Sat, 01 Feb 2025 09:26:33 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://doeverythingiwant.com/wp-content/uploads/2025/08/cropped-0802.png</url>
	<title>Preview &#8211; 隨心所欲</title>
	<link>https://doeverythingiwant.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>[iOS] Xcode Preview trouble shootings</title>
		<link>https://doeverythingiwant.com/ios-xcode-preview-trouble-shootings/</link>
					<comments>https://doeverythingiwant.com/ios-xcode-preview-trouble-shootings/#respond</comments>
		
		<dc:creator><![CDATA[艾普利]]></dc:creator>
		<pubDate>Sat, 01 Feb 2025 09:26:31 +0000</pubDate>
				<category><![CDATA[寫程式]]></category>
		<category><![CDATA[Preview]]></category>
		<category><![CDATA[SwiftUI]]></category>
		<category><![CDATA[Xcode]]></category>
		<guid isPermaLink="false">https://doeverythingiwant.com/?p=2377</guid>

					<description><![CDATA[自從開始使用 SwiftUI 後，Xcode 內的 Prev&#8230;]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">自從開始使用 SwiftUI 後，Xcode 內的 Preview 就變得非常重要，且它本身也是非常好用的東西，可以即時顯示 UI的樣式，大多數的情況下，可以說是完全反應結果，真的很好用。</p>



<p class="wp-block-paragraph">但是在某些情況下就是無法顯示出來，會讓人覺得很煩燥，有一種解決方式是把 Perviews simulator 刪除，讓它自動重新再產生。</p>



<span id="more-2377"></span>



<p class="wp-block-paragraph">有不少人覺得Preview 不好用，主要有幾個理由：如果不是 M系列 CPU 根本很難出現、電腦會變慢、三步五十就壞掉…等等。我自己剛開始在用的時候，也常常不知道為什麼它會跑不出來或是壞掉，簡單去研究一下才知道一些事情，也大概知道為什麼會這樣。</p>



<p class="wp-block-paragraph">如果你的 Xcode 也常常Preview 上一秒還可以用下一秒就跑不出來的話，接下來要說的方法，說不定可以解決你的煩惱!</p>



<h2 class="wp-block-heading">認識一下 Xcode Preview</h2>



<p class="wp-block-paragraph">在使用 SwiftUI 時，Xcode 畫面右邊這區就是 Preview畫面出現的地方，在 Xcode 裡是叫 Canvas，它是用來呈現寫在 <code>#Preview</code> 裡的程式碼，雖然不知道是不是大家都這樣，但我習慣叫它Preview 而不是 Canvas。實際上它也是把模擬器跑起來，所以若不是使用Apple 的 M 系列核心，會很難跑起來…</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="617" src="https://doeverythingiwant.com/wp-content/uploads/2025/02/Preview-1024x617.png" alt="" class="wp-image-2390" srcset="https://doeverythingiwant.com/wp-content/uploads/2025/02/Preview-1024x617.png 1024w, https://doeverythingiwant.com/wp-content/uploads/2025/02/Preview-300x181.png 300w, https://doeverythingiwant.com/wp-content/uploads/2025/02/Preview-768x463.png 768w, https://doeverythingiwant.com/wp-content/uploads/2025/02/Preview-1536x926.png 1536w, https://doeverythingiwant.com/wp-content/uploads/2025/02/Preview-2048x1234.png 2048w, https://doeverythingiwant.com/wp-content/uploads/2025/02/Preview-1920x1157.png 1920w, https://doeverythingiwant.com/wp-content/uploads/2025/02/Preview-1170x705.png 1170w, https://doeverythingiwant.com/wp-content/uploads/2025/02/Preview-585x353.png 585w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">Preview的一些問題</h2>



<p class="wp-block-paragraph">Preview 算是可以即時顯示出程式碼修改後的結果，是真的很方便，但是有時候也是會跑不出來，當然語法寫錯或是有些資料沒有給它(Preview 使用到得資料需要寫在 <code>#Preview</code> 裡，它是獨立的)，就無法顯示出來。這樣的問題可以檢查一下基本上就可以解決了，但有時候就是明明沒什麼問題，但一直轉半天畫面都沒有出現。</p>



<p class="wp-block-paragraph">在個人經驗裡有二個情況比較容易發生</p>



<ul class="wp-block-list">
<li>在二、三個專案中切換</li>



<li>在不同的Git branch 中切換</li>
</ul>



<p class="wp-block-paragraph">實作過程中難免會需要在不同的專案或不同的 Branch 中切換，就可能會<strong>遇到上一秒還顯示出現，下一秒就顯示不出來</strong>情況。</p>



<h2 class="wp-block-heading">解決方式</h2>



<p class="wp-block-paragraph">如果是在同一個專案發生這個情況可以先試試 <strong>Clear Build + Delete DerivedData </strong>，也許就可以解決這個問題，但如果怎麼樣都無法解決的話，可以試試下面方式。</p>



<p class="wp-block-paragraph">順便提一下，想刪除 <strong>DerivedData</strong> 可以從下圖開啟資料夾，再把資料夾裡的東西全丟到垃圾筒即可</p>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="677" src="https://doeverythingiwant.com/wp-content/uploads/2025/02/0201-1024x677.png" alt="" class="wp-image-2392" srcset="https://doeverythingiwant.com/wp-content/uploads/2025/02/0201-1024x677.png 1024w, https://doeverythingiwant.com/wp-content/uploads/2025/02/0201-300x198.png 300w, https://doeverythingiwant.com/wp-content/uploads/2025/02/0201-768x508.png 768w, https://doeverythingiwant.com/wp-content/uploads/2025/02/0201-1536x1016.png 1536w, https://doeverythingiwant.com/wp-content/uploads/2025/02/0201-1170x774.png 1170w, https://doeverythingiwant.com/wp-content/uploads/2025/02/0201-780x516.png 780w, https://doeverythingiwant.com/wp-content/uploads/2025/02/0201-585x387.png 585w, https://doeverythingiwant.com/wp-content/uploads/2025/02/0201-263x175.png 263w, https://doeverythingiwant.com/wp-content/uploads/2025/02/0201.png 1666w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="541" src="https://doeverythingiwant.com/wp-content/uploads/2025/02/02012-1024x541.png" alt="" class="wp-image-2393" srcset="https://doeverythingiwant.com/wp-content/uploads/2025/02/02012-1024x541.png 1024w, https://doeverythingiwant.com/wp-content/uploads/2025/02/02012-300x158.png 300w, https://doeverythingiwant.com/wp-content/uploads/2025/02/02012-768x406.png 768w, https://doeverythingiwant.com/wp-content/uploads/2025/02/02012-1170x618.png 1170w, https://doeverythingiwant.com/wp-content/uploads/2025/02/02012-585x309.png 585w, https://doeverythingiwant.com/wp-content/uploads/2025/02/02012.png 1522w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">剛剛有說到，其實Preview 也是跑模擬器，所以直接全部刪除讓它們重新產生，就和<strong>Delete DerivedData</strong> 的作法差不多，因為不確定到底是什麼問題就直接全刪，和「重開機治百病」一樣的感覺 <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">首先，開啟Terminal，不需要移動到其他位置，然後輸入以下指令</p>



<pre class="wp-block-code"><code>xcrun simctl --set previews delete unavailable</code></pre>



<p class="wp-block-paragraph">會需要跑一點點時間，跑完之後會出現以下文字</p>



<pre class="wp-block-code"><code>Using Previews Device Set: '/Users/userName/Library/Developer/Xcode/UserData/Previews/Simulator Devices'</code></pre>



<p class="wp-block-paragraph">這樣當你重新開啟 Xcode 之後，Preview 的模擬器就會再重新Create，這樣也許可以解決 Preview 轉半天沒有出現的情況。</p>



<p class="wp-block-paragraph">希望這個方式能有幫助~</p>



<p class="wp-block-paragraph">最後，祝大家 Coding 愉快!!</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://doeverythingiwant.com/ios-xcode-preview-trouble-shootings/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
