Collection 공식 문서
NSDictionary key :
a) Keys는 NSCopying 프로토콜을 실행해야 합니다.구성원을 추가하는 방법은 키 하나하나를 직접 추가하는 것이 아니라 키 하나하나를 복사하고 복사 후 대상을 디렉터리에 추가합니다.dictionary에 추가한 후, 자체 키스의copy 대상은 수정할 수 없습니다.b)Keys는hash와isEqual 방법을 실현해야 한다. dictionary는hashTable를 사용하여 저장소를 구성하고 빠른 접근을 하기 때문이다.그리고 디렉터리의 고성능은hash방법에 심각하게 의존한다.c) NSCopying 프로토콜을 사용하고 Hash, isEqual 방법을 계승한 모든 대상을 사용할 수 있지만 Large Object를 키로 사용하지 않는 것이 좋다. 예를 들어 NSImage 등이다. 이렇게 하면 성능을 손상시킬 수 있기 때문이다.
Set object NSObject hash isEqual 。 set ,hash , set 。
Set objects copy ( YES initWithSet:copyItems:). set 。
copy : copy copy。 copy copy, collection ( )。 copy collection 。
a) 얕은 copy얕은copy를 만들면 대상은retain 정보를 받고 바늘은 새로운collection에 복사됩니다.b) 깊이 copy두 가지 방법으로 깊이 copy:i. initWithArray:copyItems:YES 매개 변수를 두 번째 매개 변수로 전달할 수 있습니다.만약 이런 방식으로 깊이 copy를 진행한다면, 모든 object는 copyWithZone: 방법을 보낼 것이다.Objects에서 NSCopying 프로토콜을 구현하면 딥 코피 객체가 수행됩니다.NSCopying 프로토콜이 구현되지 않으면 오류가 발생합니다.CopyWithZone은 한 레이어의 copy만 실행합니다.ii. 만약에 진정한 깊은 코피가 필요하다면, 예를 들어 2차원 그룹이 있으면,archive 다음에 unarchive 그 collection을 진행하여 모든 내용이 NSCoding 프로토콜을 실현할 수 있다.예를 들어 NSArray *trueDeepCopyArray = [NSKeyedUnarchiver unarchiver ObjectWithData: [NSKeyedArchiver archivedDataWithRootObject:oldArray];
Copy :
a) CopyWithZone: 표층 immutable을 만드는 방법.심층 level 원상 유지.b) InitWithArray:copyItems: NO를 전송하면 표면 level의 가변성을 얻을 수 있습니다.내부의 가변성은 변하지 않는다.c) InitWithArray:copyItems: YES를 전송하면 표면 level의 가변성을 얻을 수 있습니다.다음 level은 변할 수 없습니다. 더 깊은 가변성은 변하지 않습니다.d) Archiving 및 Unarchiving은 모든 level의 가변성을 유지합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.