Xcode9:最新功能详细介绍

来源:互联网 发布:linux编译命令 编辑:程序博客网 时间:2024/05/21 18:36

文章出处:感谢原著一只会编程的狼


XCODE 9:最新功能详尽介绍

WWDC17 带来许多令人兴奋的好消息,iOS 11, Swift 4 和 Xcode 9,每个都有非常大的进步。但对 App 开发者来说,马上可以派上用场的莫过于 Xcode,毕竟我们开发的 App,可能不需要 iOS 11 的 AR 和 machine learning 功能,程式码也不见得会用到 Swift 4 的功能。因此,接下来的时间,我们就把时间交给 Xcode 9,看它大显神威吧。

如何下载 Xcode 9 beta

你可连到 XCODE 9 BETA 的下载页面下载。 注意,只有付给 APPLE 年费的尊贵开发者才能看到 BETA 版的 XCODE 9

没付费的一般开发帐号只能看到正式版的 Xcode 8.3.3。

接着,就让我们启动 Xcode 9,瞧瞧它的全新功能 !

1. 更棒的模拟器

模拟器终于有外框跟 home 键了

此外框可不是华而不实的装饰品,上面的按键都可以按呢! 按了 home 键会回到桌面,右上的睡眠/唤醒键会将 iPhone 荧幕打开或关闭, 左上的按扭则可切换静音和调整音量。

模拟器大小任你调

将滑鼠游标放在模拟器的右上(或是左上,左下,右下)后,即可自由拖曳调整模拟器的大小。

同时启动多个模拟器

从前我们一次只能跑一个模拟器,现在终于可以同时启动多个模拟器,享受钱很多,有很多 iPhone的感觉。启动多个模拟器的方法有以下两种:

  1. 从 Xcode 选择不同的模拟器,启动新的模拟器。

2.從模擬器 menu 上的 Hardware > Device,選擇新的模擬器啟動。

2. WiFi 无线安装 App

从前从前,有个人爱妳很久。哦,不是啦,彼得潘要说的是,从前从前,我们在开发 App 时得将iPhoen 麻烦地接线连到 Mac,然后再从 Xcode 将 App 安装到 iPhone。而且现在新的 Macbook 插孔愈来愈少,也许有一天,Apple 会推出无插孔的 Macbook,那我们岂不完全无法测试 App,只能转行卖鸡排 ?

为了未来的无插孔 Macbook 大计,Xcode 9 正式推出 WiFi 无线安装 App 功能,不需接线就可安装! 不过它有以下几个小小的限制。

  1. 你需要Mac要安装 Xcode 9 以上而 iOS装置要运行 iOS 11 以上的版本才能享用。

  2. Mac 和 iPhone 需连到同一个 WiFi 网路。

为了将 App 无线安装到 iPhone,此 iPhone 需要先接线到 Mac 做设定,如此 Mac 才能认得这支iPhone,未来才能无线安装。操作的步骤如下:

  1. 接线连接 iPhone。

  2. 点选 Xcode menu 的 Window > Devices and Simulators。

3.勾選 Connect via network,從網路連線到 iPhone。如果連線順利,iPhone 旁將出現網路圖示,如下圖所示。

之后当我们拔掉线后,即可成为远距离高手,自由地无线安装。不过如果刚刚没有出现网路图示,或是拔线后,iPhone 就像断了线的风筝不理我们,在 Devices and Simulators 视窗显示Disconnected。此时 Xcode 找不到 iPhone,也就无法顺利安装 App。

别担心,我们还有一招大绝招,在 Devices and Simulators 视窗上选择 iPhone 后,从右键选单点选Connect via IP Address,输入 iPhone 的 IP 后,点选 Connect 连线。

至于 iPhone 的 IP Address,则可从 iPhone 设定 App 的 WiFi 页面查询。

3. 神乎其技的程式编辑器

更清楚的警告错误讯息和更方便的问题修正

在旧版的 Xcode,当有警告错误时,它只能一行显示,所以当讯息内容太多时,它无法完整显示,结尾将变成 …。

虽然有贴心的 Fix-it 功能帮我们修正问题,不过也是挺麻烦的,必须先点选错误的红色圆圈后,才会出现 Fix-it 提示。

这一切,在 Xcode 9 都变得更简单了。现在不只错误可以多行显示,连 Fix 也会贴心地自动出现,点选即可修正问题。

點選 Fix 後,自動幫我們修正問題,幫 url 補上!

程式碼的放大縮小

按住 command 加 + 可將程式碼放大,command 加 - 可將程式碼縮小。

聰明的範圍標示

將游標移到 { } 、( ) 或是 class、func、if、for 等關鍵字時,按住 command 鍵,Xcode 將聰明地標示對應的 class、function、if、for 區塊。

游標移到 func 上按 command 鍵:

游標移到 for 上按 command 鍵:

貼心的提示選單

跟剛剛一樣,將游標移到程式碼的某個目標上,按住 command 鍵,然後再用我們的一陽指輕輕點擊,即可出現貼心的提示選單。

比方如圖所示,游標停在 if 上,按住 command 鍵點擊後提示選單出現 Add “else” Statement 和 Add “else if” Statement,Extract Method 等選項。選擇 add “else” Statement 後,自動完成 else { } 的輸入。

值得注意的,在舊版 Xcode,按住 command 鍵再點擊其實是 Jump To Definition,比方跳到類別,function 的定義。現在 Jump To Definition 變成提示選單的一個選項。如果想利用快速鍵跳到定義,請按住 command + control 再點擊。

4. SWIFT 程式重構(REFACTORING)

重新命名(RENAME)

為了寫出更好的程式,我們時常需要將變數,類別,function 改名。很可惜,這看似簡單的小小心願,在舊版的 Xcode 卻只做半套,它支援 Objective-C,卻不支援 Swift。而在 Xcode 9,Swift 程式碼也可以改名了。

比方以下例子,我們想將 struct Movie 改成 NewMovie。

  1. 將游標移到 Movie 上,按住 cmd 鍵再點擊,從提示選單中選擇 Rename。

  2. 神奇的事發生了 ! Xcode 畫面上列出專案裡所有 Movie 出現的地方,橫跨多個檔案。

  3. 當我們將 Movie 改名為 NewMovie 時,更神奇的事發生了。所有的 Movie 同步變成 NewMovie,最後按下右上角的 Rename 即大功告成 !

          自動加入需要定義的 PROTOCOL FUNCTION

          Swift 的 protocol 是個很龜毛的人,一旦遵從它,就得把它一定要定義的 function 一一實現。尤其當你對遵從的 protocol 不熟時,還得研究一番才能摸清哪些 function 要定義。

          在 Xcode 9,這些麻煩事都成過往雲煙了,讓我們看看以下例子:

          ViewController class 遵從 UITableViewDataSource protocol,此時尚未定義相關 function,因此出現紅色錯誤。

          點選 Fix,自動幫我們輸入 UITableViewDataSource 一定要定義的 2 個 function。

          將程式碼變成 METHOD (EXTRACT METHOD)

          在整理程式碼時,我們往往會發現一些可以獨立出來,變成 function 來呼叫的一段程式。從前我們只能土法煉鋼,使用複製貼上大法。現在不用這麼麻煩了,Extract Method 可以幫我們將一段程式碼變成 function,例如以下例子:

          1. 選取下載圖片的程式碼段落後,從右鍵選單點選 Extract Method。

          2. 整段程式碼變成 function extractedFunc,此時你還可利用 Rename 將 function 取個更好的名字。

                  程式碼重構轉換 OPEN SOURCE !

                  是不是覺得剛剛提到的這些功能很棒呀 ? 這只是起點而已,Apple 將 Xcode 的程式碼重構轉換 open source。換句話說,未來將有更多的英雄好漢一同來開發,發明更多幫助我們重構和轉換程式的酷炫功能。

                  5. 全面進化的版本管理

                  SOURCE CONTROL NAVIGATOR

                  左邊的 Navigator 區塊多了一個 source control navigator 分頁,現在可以更清楚地查詢和控制專案的版本管理。

                  建立 TAG 和 BRANCH

                  在新版的 Xcode,建立 tag 和 branch 變得像呼吸一樣簡單,例如以下例子:

                  1. 在 source control navigator 頁面,從想指定 tag 的 commit 叫出右鍵選單,然後選擇 Tag “c197e26″。c197e26 為 git commit id 的結尾字串。

                  2. 輸入 tag 名稱 v1.0,然後按 Create。

                  3. tag v1.0 成功生成,畫面上以粉紫色圖案顯示。

                              回到過去,切換到某個 COMMIT 版本

                              1. 在 source control navigator 頁面,選擇第一個藍色 icon,可看到目前專案處在 second commit 的版本。

                                  1. 選擇 Initial Commit,從右鍵選單點選 Checkout,回到 Initial Commit 的版本。

                                  雖然現實世界裡,時光機還沒發明,但在 Xcode 的世界,我們已經可以回到過去,專案變成 Initial Commit 的版本 !

                                  深度整合 GITHUB

                                  Xcode 和 GitHub 深度整合,現在從 Preferences 視窗的 Accounts 頁面即可設定專案連結的 GitHub 帳號。

                                  1. 在 Accounts 頁面按 +,選擇 GitHub。

                                  2. 輸入 GitHub 的帳號密碼。

                                  3. 設定成功後,在 Source Control Accounts 下可看到 GitHub 帳號。

                                              1. 將 XCODE 的專案建立上傳到 GITHUB

                                                為了將 Xcode 專案上傳到 GitHub,從前我們得先在 GitHub 網站建好 Repository,然後再從 Xcode 將專案的 Remote 設為 GitHub 的 Repository,最後再執行 push 上傳。

                                                在 Xcode 9,我們只要在 Xcode 操作即可實現剛剛的所有動作,步驟如下:

                                              1. 在 source control navigator 頁面,選擇第一個藍色 icon 後,從右鍵選單觸發 Create “Demo” Remote on GitHub。(Demo 是專案名稱)

                                              2. 填寫專案的相關資訊後,點選右下角的 Create 建立。

                                                        複製(CLONE)下載 GITHUB 帳號的專案

                                                      1. 1.從 Xcode 的 menu 點選 Source Control > Clone

                                                        2.從 GitHub 帳號的專案清單視窗選擇有興趣的對象複製(clone)下載。

                                                        6. 更多的樣版

                                                        iOS App 多了製作 AR 特效的 Argumented Reality App 樣版和文件 App 的 Document Based App 樣版。

                                                      Playground 也可以選樣版了,有多達四種可以選。

                                                      7. 顏色也有名字

                                                      Assets.xcassets 現在除了加入圖片,還可以加入有名字的顏色,方便我們之後在 Storyboard 或程式裡使用,例如以下例子:

                                                      1. 在 Assets.xcassets 頁面,從右鍵選單選擇 New Color Set 新增顏色。

                                                      2. 編輯顏色的名稱和內容,可從右半邊的 Attributes Inspector 指定顏色,如圖所示,我們加入傳說中讓人一見鍾情的顏色 – 「Vergil的浪漫藍」。

                                                      3. 在 Storyboard 指定元件顏色時,可在 Named Colors 下看到我們取的顏色名字。

                                                          1. 我們也可從程式利用顏色名字生成 UIColor 物件。

                                                            8. DEBUG VIEW HIERARCHY 可以看到 CONTROLLER

                                                            Debug View Hierarchy 是個很棒的 debug 工具,方便我們在 App 執行時研究畫面的元件。可惜從前它少了顯示一個十分重要的角色,控制畫面的 controller。如以下例子,在 Xcode 8,我們只能看到 controller 的 view。

                                                            在 Xcode 9,控制畫面的大神 controller,終於可以現身,不再害羞隱藏,例如以下例子裡的 yayatrueLoveViewController。

                                                            9. 顯示 MARKDOWN 檔案

                                                            Xcode 支援漂亮地顯示 markdown 檔案,呈現對應的文字大小,而且還能理解檔案內容的階層,方便我們點選 jump bar 選單跳到檔案的某個段落

                                                            10. 支援 SWIFT 4 和 SWIFT 3.2

                                                            Xcode 9 預設搭配最新的 Swift 4,然而它也同時支援 Swift 3.2。更棒的是,當你的專案包含多個 target 時(比方搭配一些第三方套件),你可以部分 target 的程式是 Swift 4,部分 target 的程式是 Swift 3。

                                                            總結

                                                            以上介紹的,只是 Xcode 9 一些比較特別,比較重要常用的新功能,其實還有許多沒提到的新功能值得我們去發掘研究,比方幫助我們 Debug 的 Undefined Behavior Sanitizer 和 Main Thread Checker,方便 Continuous integration 測試的 Xcode Server。想要更深入認識 Xcode 9 的朋友,可直接從 Xcode menu 的 Help 查詢。

                                                            以下 Apple 官方網頁,也有更多關於 Xcode 9 的完整介紹。

                                                            1 What’s New in Xcode 9

                                                            2 Xcode 9 beta Release Note (需登入付費開發帳號才能看到)


                                                            快速回复TOP
                                                            原创粉丝点击
                                                            热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 工作出了大错误怎么办 遇到不讲道理的人怎么办 四岁宝宝爱生闷气怎么办 一岁宝宝没耐心怎么办 孩子挑食 幼儿园老师该怎么办 小孩被惯的无法无天怎么办 高中的儿子不写作业怎么办 儿子总是不写作业怎么办 长鸡眼脚背肿了怎么办 脚上反复长鸡眼怎么办 脚底长鸡眼很痒怎么办 小脚趾上长鸡眼怎么办 6岁宝宝不爱学习怎么办 上班站久了腿肿怎么办 站时间长了腿肿怎么办 孩子做作业老是粗心大意怎么办 高中孩子没学习兴趣怎么办 初三孩子失去学习兴趣怎么办 初二对学习兴趣不大怎么办 脸上痒发红发肿怎么办 孩子作业拖拉爱丢三落四怎么办 腿肌肉按摩肿了怎么办 孩子上一年级成绩差怎么办 小孩脖子拧筋了怎么办 小孩塑料玩具拧不出来怎么办 一年级孩子做数学题粗心怎么办 手和脚有点肿怎么办 手破了之后肿了怎么办 手指肿了有脓怎么办 宝宝手指红肿有脓怎么办 孩子一听做作业就烦气怎么办 虎皮鹦鹉脚瘸了怎么办 虎皮鹦鹉脚受伤了怎么办 虎皮鹦鹉脚流血了怎么办 虎皮鹦鹉被风扇打到脚怎么办 虎皮鹦鹉脚脱臼了怎么办 孩子作业做得慢怎么办 员工给公司造成损失怎么办 小孩有写不完的作业家长怎么办 一年级孩子作业太粗心怎么办 孩子最近不好好做作业怎么办