Xcode 8 新特性

来源:http://www.cnblogs.com/xiaopin/archive/2016/08/26/5809305.html
-Advertisement-
Play Games

在2016 蘋果全球開發者大會(WWDC)期間, 蘋果一如既往地給開發者們披露了新版的集成開發工具 – Xcode, 在過去的每一次大版本發佈中,蘋果都會積極地改進開發工具,添加一些極具吸引力的新功能,今年也不例外。 1. Swift 2 and 3 過去每一版的Xcode 都和固定版本的Swift ...


在2016 蘋果全球開發者大會(WWDC)期間, 蘋果一如既往地給開發者們披露了新版的集成開發工具 – Xcode, 在過去的每一次大版本發佈中,蘋果都會積極地改進開發工具,添加一些極具吸引力的新功能,今年也不例外。

1. Swift 2 and 3

過去每一版的Xcode 都和固定版本的Swift編程語言綁定在一起, Xcode 8中將不再如此,Swift 3給 Swift編程語言帶來大量的語法變化,這些改變會讓基於以前Swift版本的程式編譯失敗。

Xcode 8 中新創建的項目預設地使用Swift 3, 幸運地Xcode 8 在編譯設置中支持開發者明確地選擇Swift 2或Swift 2.3 進行編譯。

xc8-01.jpg

支持Swift語言以往版本

這就是說你可以選擇適合的時候遷移項目到Swift 3, 如果一個目標(Target)需要支持Swift 2.3, 需要在目標(Target)的編譯設置里把Use Legacy Swift Language Version 設置成Yes。

Xcode 8 也提供了遷移工具幫你把項目升級到Swift 3, 不過Xcode提供的遷移工具讓人喜憂參半,這次Swift 3 升級比上次升級有太多的變化,希望Xcode 8 的遷移工具會有所改善吧。

2. 源碼編輯器擴展

Xcode 8 最讓人驚喜的是支持源碼編輯器第三方擴展,開發者對於本地插件系統已經翹首企盼了很多年,源碼編輯器擴展算是沿著插件系統方向邁出堅實的第一步吧。

源碼編輯器擴展很類似於Xcode的擴展,但蘋果一再強調當前的擴展專註於源碼的操作和導航,也就是為什麼會叫做源碼編輯器擴展,Xcode 8 甚至提供了編輯器擴展模板讓你快速上手。

xc8-02.jpg

Xcode 源碼編輯器擴展模板

對於當前擴展架構中我最喜歡的一點就是每個擴展都運行在不同的進程中,這就意味著擴展的異常崩潰不會引起Xcode的意外終止,隨著本地插件的越來越多,特別是蘋果發佈了新版的Xcode, 分進程運行的優勢會顯得越來越突出。

擴展對比插件另一個優點是安全,你可以通過開發賬號登錄和發佈擴展程式,蘋果也提到開發者可以通過Mac 應用商店銷售擴展,對於想通過銷售擴展賺錢的開發者來說是很不錯機會。

我對於源碼編輯器擴展是非常興奮的,雖然我是 Alcatraz 的粉絲,但蘋果的本地擴展更貼近於未來正確的方向。非常期待開發者們未來會提供什麼樣的擴展,其實已經有人在 GitHub 上發佈了插件。

3. 調試

即使最好的開發者每天都要花費大量的時間進行調試程式,懂你的蘋果提供了更好的工具讓調試更簡單,Xcode 8中針對調試做了不少顯著的優化。

界面調試

Xcode 8中的界面調試非常強大,界面調試可以展示運行時(runtime)問題,改善後的界面調試對於調試不清晰或者不滿意的佈局變得更加簡單。

運行時問題?沒錯,Xcode 8中除了編譯時問題還提供了運行時問題,如果在運行時遇到自動佈局的問題,Xcode會在左面導航面板把這些問題展示為運行時問題,這將會是個非常受歡迎的功能。

xc8-03.jpg

運行時問題

記憶體調試

Xcode 8 的記憶體調試功能針對查找記憶體泄漏和迴圈引用的問題也做了顯著優化,我還不太確定在實際項目中效果如果,但看起來很棒。

xc8-04.jpg

記憶體調試

4. 代碼簽名

代碼簽名對於那些對蘋果平臺有興趣開發者來說是非常不幸的,但幸運的是蘋果沒有做把頭埋在沙子里的鴕鳥,蘋果看到了開發者們遇到的問題並嘗試解決,一些經驗非常豐富的開發者也會不時遇到簽名的問題,在今年的 Platforms State of the Union視頻中, 蘋果甚至自嘲自己的 修複問題(Fix Issue) 按鈕,不僅很少時候能修複真正的問題,有時候會把問題弄得更糟。

xc8-05.jpg

修複問題(Fix Issue) 按鈕通常不能修複問題

代碼簽名問題在Xcode 8 中將成為過去式,對於每一個目標(Target), 你可以勾選覆選框讓Xcode幫你管理代碼簽名,這個選項對於新項目預設是勾選的。在勾選的情況下,Xcode幫你管理證書,配置文件 和 應用標示等。

xc8-06.jpg

Code Signing Done for You

希望蘋果這次能解決簽名問題,數以萬記的開發者們和我一起祈禱吧。

5. 其他改善和增強

San Francisco Mono字體

如果你非常享受使用精雕細琢的軟體,你應該會很喜歡Xcode 8中的San Francisco Mono 字體,請參看下圖:

xc8-07.jpg

San Francisco Mono

高亮當前行

你有沒有註意到上面截圖中的當前行被標示為高亮? 這是Xcode8中另一個受歡迎的功能,當前我在Xcode 7 中使用Backlight for Xcode 實現類似功能,在Xcode 8 中將不再需要這個插件了。

圖片代碼自動完成

說到一些將被廢棄的插件, 目前我在使用 Kent Sutherland開發的插件 KSImageNamed 能夠在Xcode中幫助圖片代碼自動完成, 在Xcode 8 我將不需要這個插件,因為這個功能已經內置在Xcode 8 中。

1468405644887475.png

圖片自動完成

6. 文檔

相信每個開發者都會在瀏覽和閱讀文檔上會花費很多時間,好的文檔對於開發者有很大幫助,其實蘋果的文檔是非常優秀的,但提供的瀏覽方式卻沒有那麼友好。

這個問題在 Xcode 8 將會被解決,新的文檔格式看起來漂亮極了,且文檔瀏覽會變得簡單和快捷。蘋果也針對記憶體問題做了相關優化,新版的記憶體占用會少很多。

下麵是兩張關於文檔的截圖,是不是極有設計感?

1468405665142973.png

新文檔瀏覽器圖1

1468405685414966.png

新文檔瀏覽器圖2

總結

最後想說我這篇文章只是覆蓋了Xcode新功能的一部分,對於Xcode的大版本升級我總是很期待的。 哪一個是你最喜歡的Xcode 8中的新功能? 在評論區不吝分享吧。

英文原文:What's New in Xcode 8

轉自:http://www.cocoachina.com/ios/20160714/17038.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 隨著項目中動態鏈接庫越來越多,我們也遇到了很多奇怪的問題,比如只在某一種 OS 上會出現的 `java.lang.UnsatisfiedLinkError`,但是明明我們動態庫名稱沒錯,ABI 也沒錯,方法也能對應的上,而且還只出現在某一些機型上,搞的我們百思不得其解。為了找到出現千奇百怪問題的原因... ...
  • 最近一段時間,在網上不斷看了一些技術人員寫的代碼demo,由於前段時間一直在寫一個電商項目,記得有一個功能和看到的demo中類似,但是截然2種不同的處理方法,個人覺得我的這個方法更為簡潔一些,所以我把代碼中的這個簡單的小功能跟大家分享出來,希望對大家有幫助。 功能:實現類似於支付寶的提現密碼輸入功能 ...
  • 首先是OC調用C++的代碼。 創建一個Objective-C的項目,並創建c++文件MyCppFile.hpp和MyCppFile.cpp。 把要調用Cpp代碼的文件名改成mm尾碼名,項目代碼的結構如下: 實現C++部分的代碼: MyCppFile.hpp MyCppFile.cpp 在main.m ...
  • 1 . 音視頻處理的一般流程: 數據採集→數據編碼→數據傳輸(流媒體伺服器) →解碼數據→播放顯示1、數據採集:攝像機及拾音器收集視頻及音頻數據,此時得到的為原始數據涉及技術或協議:攝像機:CCD、CMOS拾音器:聲電轉換裝置(咪頭)、音頻放大電路2、數據編碼:使用相關硬體或軟體對音視頻原始數據進行 ...
  • ListView的模板寫法 ListView模板寫法的完整代碼: "android代碼優化 ListView中自定義adapter的封裝(ListView的模板寫法)" 以後每寫一個ListView,就這麼做:直接 導入ViewHolder.java 和 ListViewAdapter ,然後寫一個 ...
  • 上手開發 iOS 一段時間後,我發現並不能只著眼於完成需求,利用閑暇之餘多研究其他的開發技巧,才能在有限時間內提升自己水平。當然,“其他開發技巧”這個命題對於任何一個開發領域都感覺不找邊際,而對於我來說,嘗試接觸 objc/runtime 不失為是開始深入探索 iOS 開發的第一步。 剛瞭解 run ...
  • Xamarin提示Build-tools版本過老 錯誤信息:G:\XamarinDemo\Xamarin.Forms-master\packages\Xamarin.Android.Support.Vector.Drawable.23.3.0\build\Xamarin.Android.Suppor ...
  • 當第一次載入Singleton類時不會初始化sInstance,只有在第一次調用Singleton的getInstance方法時才會導致sInstance被初始化。因此第一次調用getInstance方法會導致 虛擬機載入SingletonHolder類,這種方法不僅能夠確保線程安全,也能夠保證單例 ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...