저수준에서 NSCoding과 NSCopying의 실제 차이점은 무엇입니까?NSCoding VS NSCopying
또한 독립적으로, 함께 사용하거나 어느 것을 사용하는 것이 좋습니까?
저수준에서 NSCoding과 NSCopying의 실제 차이점은 무엇입니까?NSCoding VS NSCopying
또한 독립적으로, 함께 사용하거나 어느 것을 사용하는 것이 좋습니까?
NSCopying는 즉시 기존 개체의 탄소 사본 등 (기능) 새 개체를 만드는 데 사용되는, 즉, 다른 언어로 clone()
를 호출 할 것이 무엇에 가장 가까운.
NSCoding은 serialize()/deserialize
에 가장 근접합니다. 즉, 나중에 다른 프로그램을 다시 시작할 때 개체를 나중에 저장하고 다시 살릴 수있는 형식으로 변환하는 데 사용됩니다.
여기서 알 수 있듯이 기능은별로 비슷하지 않으므로 독자적으로 사용할 수 있어야합니다.
두 개체는 모두 해당 개체의 복사본을 만드는 반면 매우 다른 방식으로 개체를 만듭니다.
프로토콜은 실제로 특정 기능 집합을 구현하기위한 약속 일뿐입니다. NSCopying의 경우에는 -copyWithZone:
이고 NSCoding의 경우에는 –initWithCoder:
과 -encodeWithCoder:
입니다.
NSCopying은 개체의 메모리 내 복사본을 만드는 데 사용되며 다른 동일한 개체입니다.
NSCoding은 일련 화 된 표현 (NSData 객체)을 만들거나 이러한 표현에서 객체를 만드는 데 사용됩니다.
NSCoding은 개체를 디스크에 직렬화하는 것에 관한 것입니다.
NSCopying은 (메모리에서) 복사 할 수 있습니다.