반응형
시작
이전에 이미 plist의 데이터를 갖고 오는 방법을 설명을 했었습니다.
[iOS/Swift] 개발 환경에 따라 각각의 다른 plist의 저장된 API Key 값 받아오기
[iOS/Swift] plist의 값 얻는 방법 및 Github에서 중요한 정보 숨기는 방법(API Key, Bundle, gitignore)
그런데 불러오는 과정에서
NSDictionary(contentsOfFile: String)
은 iOS 11 부터 더 이상 사용되지 않더라고요.
이런식으로 사용이 가능하네요.
var parsePlist: NSDictionary {
guard let plistUrl = Bundle.main.url(forResource: "SecureAPIKeys", withExtension: "plist") else {
fatalError("Couldn't find file 'SecureAPIKeys.plist'.")
}
guard let plistData = try? Data(contentsOf: plistUrl),
let dict = try? PropertyListSerialization.propertyList(from: plistData, format: nil) as? NSDictionary else {
fatalError("Couldn't load dictionary from data.")
}
return dict
}
let value = parsePlist["Key값"] as! String
// let value = parsePlist.object(forKey: "Authorization") as? String
익스텐션으로 만들어 보면 이와 같이 사용할 수 있습니다.
extension Bundle {
static func parsePlist(ofName name: String) -> [String: AnyObject] {
guard let plistUrl = Bundle.main.url(forResource: name, withExtension: "plist") else {
fatalError("Couldn't find file '\(name).plist'.")
}
guard let plistData = try? Data(contentsOf: plistUrl),
let dict = try? PropertyListSerialization.propertyList(from: plistData, format: nil) as? [String: AnyObject] else {
fatalError("Couldn't load dictionary from data.")
}
return dict
}
}
let dict = Bundle.parsePlist(ofName: "SecureAPIKeys")
let value = dict["Key값"] as! String
반응형
'UIKit > Cheat Sheet' 카테고리의 다른 글
[iOS/Swift] Observable 원리 (Data Binding, Playground 간단 예제) (0) | 2023.02.25 |
---|---|
[iOS/Swift] 검색창(UISearchController)과 결과창(searchResultsController) 사이의 공간 없애기! (0) | 2023.02.22 |
[iOS/Swift] plist의 값 얻는 방법 및 Github에서 중요한 정보 숨기는 방법(API Key, Bundle, gitignore) (0) | 2023.02.10 |
[iOS/Swift] 개발 환경에 따라 각각의 다른 plist의 저장된 API Key 값 받아오기 (0) | 2023.02.10 |
[iOS/Swift] UIColor (RGB대신 HEX Color 이용하기) (0) | 2023.02.09 |