Search

Swift - Builder Pattern

2017-01-15 2:18 PM

Builder Pattern

在建立物件時的一種方法

比起一般一連串的 set...set...set

Builder Pattern 可以更優雅的創建具複雜屬性的物件

程式碼可讀性也會提高許多

程式碼範例
// 宣告
class DataBean {

    var id:int;
    var title:String;
    var desc:String;

    // 設定別名 可避免混淆物件來源
    typealias builderClosure = (DataBean) -> Void

    // 建構子
    init(build:builderClosure) {
        build(self);
    }
}

// 使用
var data = DataBean(build: {
                $0.id = 0;
                $0.title = "標題";
                $0.desc = "這是一個教學範例唷~";
           });
各項資料連結
Swift Tour

Swift - CocoaPods 安裝及使用方式教學

2017-01-06 6:15 PM

CocoaPods 可以看作是 Gradle 或 Maven 的 Swift 版本

能夠協助管理引用的 libraries

雖然沒有與 XCode 做介面上的整合

但使用方式與 Gradle 相當類似 因此很容易就可以上手

首先開啟終端機後輸入以下命令就會開始安裝

sudo gem install cocoapods

安裝完成後將目前的工作目錄切換到專案的根目錄底下

cd ~/AppCodeProject/MyProject

再輸入以下命令即可初始化專案

pod init

初始化完成後可以看到專案根目錄底下新增了一個 Podfile 檔案

這個檔案與 gradle.build 檔案是相當類似的一個存在

主要用來管理目前專案中有用到哪些 libraries

以下為加入了 Firebase libraries 的檔案範例

# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'

target 'MyProject' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for MyProject
  pod 'Firebase/Core'
  pod 'Firebase/AdMob'
  pod 'Firebase/Messaging'
  pod 'Firebase/Crash'

  target 'MyProjectTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'MyProjectUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end

其中的 # Pods for MyProject 就是可以加入 libraries 的地方

只要使用 pod 'LIBRARY_NAME' 就完成了加入的動作

之後再到終端機介面使用 pod install 即可開始下載需要的檔案

不過這邊要注意一點

如果是第一次使用 CocoaPods 建議使用以下步驟來做第一次的初始化動作

pod setup --verbose
pod install --verbose

setup 動作是初始化 master repo(--verbose 表示要輸出 log 可以明白目前的處理進度)

這個動作會將 git 上的所有檔案下載下來 需時非常久

若沒有經過這個動作而直接使用 pod install 可能會失敗或是卡住

如果說你已經卡在 pod install 的動作的話

可以先使用以下命令將原本的 master repo 移除 重新初始化

pod repo remove master

setup 動作完成後再使用 install 將 libraries 下載回來

以上動作完成之後會在專案根目錄內新增一個 MyProject.xcworkspace 的檔案

之後請使用這個檔案開啟專案(原本應該是使用 MyProject.xcodeproj)

開啟後可以在 XCode 的介面發現多了一個新的 Pods 專案

裡面包含著我們引入的所有 libraries

可以試著開啟一個 swift 檔案使用 import 看看是否可以成功

若在日後需要新增 library 只要再次編輯 Pod 檔案即可

編輯後使用 pod install 會下載新增的項目

而原本已存在的 libraries 則不會進人任何動作,所以不必擔心每次更新一大堆還要檢查相容信

但若是使用 pod update 則除了下載新增項目之外,還會額外檢查已存在的 libraries 是否有新的版本

這是 install 與 update 的最主要差異

請各位視情況選擇使用的命令,避免更新到尚未支援的版本造成困擾喔!

各項資料連結
CocoaPods