plist의 데이터 가져오기

DevelopRecord·2022년 5월 19일
0

오늘은 plist에 대해 알아보는 시간을 가져보려 합니다.

plist에는 앱의 설정 값들의 정보가 담겨 있어요.

그 중에는 민감한 정보가 들어있을 수도 있구요.

먼저 저는 위에서의 내용 때문에 plist를 사용한 것은 아니고,
문자열이 긴 텍스트들을 가져오고 싶었어요.

어쨌거나 위의 내용이나 이거나 방식의 변화는 크게 없기에 일단 진행하겠습니다.

1. Property List 생성

2. 데이터 생성

전 이미 값을 미리 입력해 뒀어요.

Root에 마우스 커서를 올려보시면 + 아이콘이 뜨는데 그걸로 데이터들을 생성할 수 있습니다.

PropertyList는 기본적으로 Key-Value 쌍으로 이루어진 Dictionary 타입입니다.

3. 데이터 가져오기

위에서 PropertyList는 키와 값으로 이루어진 Dictionary타입이다 라고 했죠?
때문에 Key값을 이용해서 Value를 불러올 수 있어요.

// plist의 이름을 입력해 주세요.
guard let url = Bundle.main.url(forResource: "WarningText", withExtension: "plist") else { return }
guard let dictionary = NSDictionary(contentsOf: url) else { return }

let warning1 = dictionary["warning1"] as? String
let warning2 = dictionary["warning2"] as? String
let warning3 = dictionary["warning3"] as? String
let warning4 = dictionary["warning4"] as? String
let warning5 = dictionary["warning5"] as? String

print("1. \(warning1), 2. \(warning2), 3. \(warning3), 4. \(warning4), 5. \(warning5)")

별 어려울 건 없지만 먼저 이 방식의 단점부터 설명드리자면,

Key의 값을 모르면 Value를 가져올 수 없어요.
당연하게도 Key에 오타가 나도 Value를 불러올 수 없어요.

대신 장점도 명확합니다.

데이터에 변화가 생겨도 쉽게 대처가 가능합니다.
구조체를 따로 만들지 않아도 값을 가져올 수가 있죠.

결과

PropertyList를 잘 활용하면 코드 가독성 측면에서도 훨씬 좋다 생각합니다.
굳이 이 많은 내용들을 일일이 타이핑 해가며 하드코딩하는 것은 굉장히 비효율적이기 때문이죠.

레퍼런스

참고자료

0개의 댓글