<?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/"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>if 归档 - Tinyfool的个人网站</title>
	<atom:link href="https://codechina.org/tag/if/feed/" rel="self" type="application/rss+xml" />
	<link>https://codechina.org/tag/if/</link>
	<description></description>
	<lastBuildDate>Sat, 18 Jul 2020 13:26:20 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>Xcode 12 比 Xcode 11 有很多改进， 我遇到的一个具体案例</title>
		<link>https://codechina.org/2020/07/1700/</link>
					<comments>https://codechina.org/2020/07/1700/#respond</comments>
		
		<dc:creator><![CDATA[tinyfool]]></dc:creator>
		<pubDate>Fri, 17 Jul 2020 02:00:02 +0000</pubDate>
				<category><![CDATA[iOS开发]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[if]]></category>
		<category><![CDATA[swift]]></category>
		<category><![CDATA[swiftui]]></category>
		<category><![CDATA[xcode]]></category>
		<guid isPermaLink="false">https://codechina.org/?p=1700</guid>

					<description><![CDATA[<p>编译差异 最近同时使用 Xcode 11 和 Xcode beta (也就是12)，发现，后者性能提升超级明显 [&#8230;]</p>
<p><a href="https://codechina.org/2020/07/1700/">Xcode 12 比 Xcode 11 有很多改进， 我遇到的一个具体案例</a>最先出现在<a href="https://codechina.org">Tinyfool的个人网站</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">编译差异</h2>



<p>最近同时使用 Xcode 11 和 Xcode beta (也就是12)，发现，后者性能提升超级明显，而编译器的理解能力也提升很多。</p>



<p>比如，我的一个SwiftUI代码里面，有一个稍微复杂一点的判断逻辑，有三个 if/else 分支，如下：</p>



<pre class="wp-block-code"><code lang="swift" class="language-swift line-numbers">Group {
    if(index>0 &amp;&amp; item.rating>4.0) {
        PoiLargeImageCell(item:item)
    }else if(index==0){
        InvisibleCell(largeHeadView:self.$largeHeadView)
        PoiCell(item: item)
    }else {
        PoiCell(item: item)
    }
}</code></pre>



<p>这个代码在 Xcode 12 可以正常编译，没有任何问题。但是，在 Xcode 11 下就会直接报错，而且是那种完全文不对题的错误信息。错误信息不是在 Swift 5 发布后有改善了么？但是在这个问题下仍旧文不对题，所以，我只能把这个稍微复杂一点的 if/else 语句改为两个 Group  嵌套的做法，如下，这样在 Xcode 11 就可以正常编译了。</p>



<pre class="wp-block-code"><code lang="swift" class="language-swift">Group {
    if(index==0){
        ZStack{
            InvisibleCell(largeHeadView:self.$largeHeadView)
            PoiCell(item: item)
        }
    }else {
        Group {
            if(index>0 &amp;&amp; item.rating>4.0){
                PoiLargeImageCell(item:item)
            }else {
                PoiCell(item: item)
            }
        }
    }
}</code></pre>



<p>为了迁就编译器，代码变啰嗦多了。不过暂时需要这么做，期待 Xcode 12 早日正式发布。这么多年以来，第一次感觉苹果的 Beta 版本这么靠谱，感觉苹果今年果然有点进步。</p>



<h2 class="wp-block-heading">提交上出现的错误信息</h2>



<p>今天我用 Xcode 11 提交一个 app ，遇到了一个以前没见过的错误信息，“Profile doesn&#8217;t include the com.apple.application-identifier entitlement.”。查了下，原来跟 MacOS Big Sur 有关系，跟 Xcode 11 和 Xcode 12 beta 也有关系。解决方法很搞笑，那就是用 Xcode 11来编译打包，用 Xcode 12 beta 来 upload app。详情可以参考<a href="https://developer.apple.com/forums/thread/650438">苹果开发者论坛的相关帖子</a>。</p>
<p><a href="https://codechina.org/2020/07/1700/">Xcode 12 比 Xcode 11 有很多改进， 我遇到的一个具体案例</a>最先出现在<a href="https://codechina.org">Tinyfool的个人网站</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://codechina.org/2020/07/1700/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			<media:content url="https://codechina.org/wp-content/uploads/2020/07/screen-hero-large.jpg" medium="image" />
	</item>
	</channel>
</rss>
