2013-01-16 3 views
1

저수준에서 NSCoding과 NSCopying의 실제 차이점은 무엇입니까?NSCoding VS NSCopying

또한 독립적으로, 함께 사용하거나 어느 것을 사용하는 것이 좋습니까?

답변

8
  • NSCopying는 즉시 기존 개체의 탄소 사본 등 (기능) 새 개체를 만드는 데 사용되는, 즉, 다른 언어로 clone()를 호출 할 것이 무엇에 가장 가까운.

  • NSCoding은 serialize()/deserialize에 가장 근접합니다. 즉, 나중에 다른 프로그램을 다시 시작할 때 개체를 나중에 저장하고 다시 살릴 수있는 형식으로 변환하는 데 사용됩니다.

여기서 알 수 있듯이 기능은별로 비슷하지 않으므로 독자적으로 사용할 수 있어야합니다.

2

두 개체는 모두 해당 개체의 복사본을 만드는 반면 매우 다른 방식으로 개체를 만듭니다.

프로토콜은 실제로 특정 기능 집합을 구현하기위한 약속 일뿐입니다. NSCopying의 경우에는 -copyWithZone:이고 NSCoding의 경우에는 –initWithCoder:-encodeWithCoder:입니다.

NSCopying은 개체의 메모리 내 복사본을 만드는 데 사용되며 다른 동일한 개체입니다.

NSCoding은 일련 화 된 표현 (NSData 객체)을 만들거나 이러한 표현에서 객체를 만드는 데 사용됩니다.

1

NSCoding은 개체를 디스크에 직렬화하는 것에 관한 것입니다.

NSCopying은 (메모리에서) 복사 할 수 있습니다.