티스토리 뷰

iOS

[iOS] NSCoding 정리

Hani_Levenshtein 2021. 12. 7. 23:52

안녕하세요 Hani입니다.

이번에는 NSCoding에 대하여 알아볼 거예요.

 

 

 

NSCoding은 아카이빙과 배포를 위해 객체가 Encode/Decode 될 수 있도록 만드는 프로토콜이에요.

 

 

여기서 아카이빙은 객체와 객체간의 관계를 나타내는 Object Graph를 archive라는 파일로 만드는 작업이구

배포는 객체를 객체를 다른 주소 공간에 복사하는 작업입니다.

 

 

아무튼.. Encode/Decode에 초점을 맞춰보면

func encode(with: NSCoder)

init?(coder: NSCoder)

프로토콜을 준수하기 위해 두 가지 메서드를 필수적으로 구현해야 하는데욥.

 

encode는 주어진 Archiver에 객체(self)의 인스턴스 변수를 encode 하는 메서드입니다.

이 메서드는 여러 번 호출될 수 있어요. 

 

init은 주어진 Unarchiver의 데이터를 decode 하여 객체(self)를 초기화하는 메서드입니다.

이 메서드는 객체 당 한 번만 호출되구용.

 

 

두 메서드를 구현하면 NSCoding 프로토콜의 목적인 객체의 Encode/Decode이 가능해집니다. ☺️

 

매개변수 NSCoder와 Archiver/Unarchiver 사이의 관계는 여기에서 확인하실 수 있어용.


References

https://developer.apple.com/documentation/foundation/nscoding

 

댓글