• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

커스텀타입 아닌 기본(Int)타입은 encode가 불가한가요?

21.10.31 19:16 작성 조회수 112

0

강의에서는 커스텀 타입에 Codable 프로토콜을 적용했는데, 그냥 뷰컨트롤러에 있는 Int 타입의 변수값을 plist에 저장하려면 어떻게 해야하나요?

배운대로 encode를 먼저 해보았는데요, Int형 변수를 인코드하면 do-catch로 에러를 받아봤을 때 Top-level Int encoded as number property list fragment. 라고 나옵니다.

localizedDescription으로 나오는 메세지로는 The data couldn’t be written because it isn’t in the correct format.라고 나옵니다.

스위프트의 기본 타입에 대해서는 Codable을 따로 적용하지 않아도 된다고 한것같은데.. 뷰컨트롤러에 있는 Int형 변수에 따로 Codable 적용을 안해서 그런걸까요? 

조언 부탁드립니다!

 

답변 1

답변을 작성해보세요.

1

안녕하세요, 임오주님. 

 

Int 값은 특별한 사전작업 없이 바로 plist에 저장할 수 있습니다. 

https://developer.apple.com/documentation/swift/int

링크의 맨 아래를 보시면 이미 Encodable 과 Decodable을 준수하고 있는 것을 확인할 수 있습니다.

Swift에서 plist(실제 저장되는 형태는 XML)로 저장할 때는 Dictionary를 구성한 뒤 그 Dictionary를 plist 형태로 write 하는 게 편합니다.

 

도움이 되셨길 바라며, 학습하시면서 동영상의 범위를 벗어나는 부분에서 궁금한 점이 있으시면, 

언제든 코더스하이 라운지를 이용해 주시기 바랍니다. 

http://lounge.codershigh.com/