WWDC14 Session 401 學習筆記

回廣州休息了十天,就又偷懶了:-P。今天正式上班,就該幹正事了。

401 是 Tools 系列的第一篇,介紹的是 What’s New in XCode。

在飛回來的飛機上+Google I/O Night 上看完的,有這麼幾點需要注意。

PlayGround

這東西,我看大夥兒的做法全都是把他當做學習語言用的東西,單獨建立了一個PlayGround 項目,然後在裡面寫一些奇奇怪怪的代碼。

但這東西並不只是這麼簡單,Apple推薦每個Swift的項目都應該創建一個PlayGround文件。幹什麼用呢?回顧下我們開發,我們經常寫一些自定義的東西,例如實現一個filter,做一個drawrect,做一個數據計算。這些東西寫在項目裡面是非常麻煩的,特別是和UI有關的,調整起來非常非常麻煩。這時果斷要在PlayGround裡面寫,然後將寫好的代碼貼回工程。

Interface Builder

  • @IBDesignable 可以在IB中實時預覽效果, 不過可以預覽的View 必須在 framework中。否則會報錯:its executable isn't loadable 不過我折騰半天也沒折騰出來,不知道是不是我打開姿勢錯了。包括:http://www.weheartswift.com/make-awesome-ui-components-ios-8-using-swift-xcode-6/我一樣沒效果
  • prepareForInterfaceBuilder method 可以用於在IB中Design時執行,實際上不運行。例如弄一張圖片來調整,但運行的時候就不加載了。
  • IBInspectable 可以放在 view的 Property前面,這樣可以在IB裡動態修改Property。
  • Editor﹣Debug Selected Views 可以不需要運行 Simulator,就可以下斷點調試選中的View,配合上面那個prepareForInterfaceBuilder就如單元測試一般了~
  • 在storyboard的分欄選項裡面有 preview 可以預覽當前UI的兼容情況,如果是universal的話,還可以看到其他平台的兼容情況。
  • Storyboard下面有個 Any 、regular 之類的選項,可以針對iPad iPhone 做不同的UI,修改完了在 Constraint裡面選擇 Update 就可以在preview裡面看到效果了

Debug

  • UIView 也能在下斷點的時候看到渲染的效果了
  • 重載 DebugQuickLookObject,可以return一個 NSAttributedString對象,裡面可以包含各種奇奇怪怪的東西,例如文字、圖片之類的。這樣可以可眎化各種自定義的東西了。
  • 運行時點擊DebugViewHierarchy按鈕,可以像reveal一樣預覽 View層次關係,和reveal一樣,可以在右側邊欄裡面看到當前選中的View的信息,在預覽裡面拖動鼠標可以以3D視角預覽頁面。左下角的Slider 可以拖動修改層次結構,右下角的Slider可以隨著拖動隱藏層次,下面的第二個按鈕可以顯示選中控件的constraint
  • 在Unit test中可以用 measureBlock 來測試性能,可以在測試成功后的右側標誌上面設置基準,例如我這個算法必須要在1s內跑完什麼的即超過1s就會fail,成OJ了。在測試結果的那個勾叉標識可以右鍵選擇 profiler in instrument
  • 在instrument裡面,對於測試的曲線圖可以通過拖動生成一個filter

Comments