Swift로 Plist에서 Typesafe 값을 가져오는 라이브러리

6685 단어 XcodeSwiftplistiOS
WebAPI를 이용한 응용 프로그램을 개발할 때, 나는 Plist에서 응용 프로그램 ID와 APIKey 등 원본 코드에 기술하고 싶지 않은 값을 정의하고 이용하는 경우가 많다고 생각한다.그때 편리한 라이브러리SwiftyConfiguration를 써 봤어요.

사용 방법


1. 설치


Carthage, Cocoapods 지원
(2016/07/10 현재 Swift2.2, Xcode7.3.1)

2. 프로젝트에 Plist 추가



3. Plist를 정의하는 키

Keys Extension 정의 Plist의 각 Key
import SwiftyConfiguration

extensino Keys {
    static let string = Key<String>("string")
    static let int    = Key<Int>("int")
    static let float  = Key<Float>("float")
}
해당하는 Plist 값
Type
Plist의 몰드
String
String
NSURL
String
NSNumber
NSNumber
Int
NSNumber
Float
NSNumber
Double
NSNumber
Bool
Boolean
NSDate
Date
Array
Array
Dictionary
Dictionary

4. 구성 대상을 생성하고 플러그인 값을 가져옵니다.


Plist 경로를 지정하여 Configration 객체를 만들고 get 에서 값을 가져옵니다.
Generics 방법으로 정의되기 때문에 이용자는 안전하게 이용할 수 있습니다
import SwiftyConfiguration

let plistPath = NSBundle.mainBundle().pathForResource("Configuration", ofType: "plist")!
let config = Configuration(plistPath: plistPath)!

let stringValue = config.get(.string)!  // "Hoge"
let intValue    = config.get(.int)!     // 1
let floatValue  = config.get(.float)!   // 3.14

기타

. 구분 키를 사용하면 그룹 구역의 끼워넣기 값을 얻을 수 있습니다.Debug, Release에서 APIKey 등을 구분할 때 편리합니다.
import SwiftyConfiguration

extension Keys {
    #if DEBUG
        private static let prefix = "Debug"
    #else
        private static let prefix = "Release"
    #endif

    static let apiKey = Key<String>("\(prefix).apiKey")
}

선전하다


Swift UI 라이브러리 등을 몇 개 만들었기 때문에 가능하다면 별라의 요청을 기다릴 것입니다(ΦωΦ)
  • https://github.com/ykyouhei/KYDrawerController
  • https://github.com/ykyouhei/KYShutterButton
  • https://github.com/ykyouhei/KYNavigationProgress
  • https://github.com/ykyouhei/KYDigitalFontView
  • https://github.com/ykyouhei/KYWheelTabController
  • https://github.com/ykyouhei/SwiftyConfiguration
  • 좋은 웹페이지 즐겨찾기