copy-mutableCopy
Copy는 문자열, 배열, 사전 등 변경되지 않는 복사본을 만드는 NSCoppying 프로토콜을 먼저 실행해야 합니다.
mutable Copy는 가변 문자열, 가변 배열, 가변 사전 등 가변 복사본을 만드는 NSMutable Copying 프로토콜을 먼저 실행해야 합니다.
copy를 사용자 정의하려면 NSCopying을 준수하고 copyWithZone: 메소드를 구현해야 합니다.
mutable Copy를 사용자 정의하려면 NSMutable Copying을 준수하고 mutable Copy WithZone: 메서드를 구현해야 합니다.
1. 변하지 않는 문자열의mutableCopy(심도 복사)://심도 복사: 내용 복사, 새로운 대상 생성.새 객체 카운터는 1로 설정되고 소스 객체 카운터는 변경되지 않습니다.
NSString *string = [[NSString alloc] initWithFormat:@"age is %i", 10];
NSMutableString *str = [string mutableCopy]; // , 1。 ; str string 。
2. 변하지 않는 문자열의copy(얕은 복사)://얕은 복사: 바늘 복사, 새로운 대상이 생기지 않습니다.소스 객체 카운터 +1.단 한 가지 상황은 간단한 복사입니다. 대상이 코피 방법을 호출할 때.
NSString *string = [[NSString alloc] initWithFormat:@"age is %i", 10];
NSString *str = [string copy]; // copy , , ,copy ; +1; ,copy retain.
3. 가변 문자열의 copy(딥 카피):
NSMutableString *string = [NSMutableString stringWithFormat:@"age is %i", 10];
NSString *str = [string copy]; // ,str 1。
4. 가변 문자열의 Mutable Copy(딥 카피):
NSMutableString *string = [NSMutableString stringWithFormat:@"age is %i", 10];
NSMutableString *str = [string mutableCopy]; // ,str 1。
5. @property의 매개 변수 copy 정책:
@property (nonatomic, copy) NSString *name;
// copy set release 、copy
// ,
// :NSString copy , retain
6. 대상의copy:
Student *stu1 = [Student studentWithName:@"stu1"];
Student *stu2 = [stu1 copy];
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.