프로그래머 모집 시리즈: 5 어떻게 자신의 클래스에 코피 수식자를 사용합니까?copy 키워드가 있는setter를 어떻게 다시 씁니까?
1199 단어 프로그래머 모집
1), 자신의 클래스가 copy 수정자를 사용할 수 있도록 하는 단계:
a)、 NSCopying
b)、 NSCopying :
- (id)copyWithZone:(NSZone *)zone;
코드 예:
- (id)copyWithZone:(NSZone *)zone {
//
Person *p = [[[self class] allocWithZone:zone] init];
p.name = self.name;
p.age = self.age;
return p;
}
2)、copy 키워드가 있는 setter를 다시 쓰는 방법:
- (void)setName:(NSString *)name {
//[_name release];
_name = [name copy];
}
tips:
Copy & MutableCopy
copy 또는mutableCopy 방법을 사용하여 대상의 복사본을 만들 수 있습니다
결론: 변하지 않는 대상이 변하지 않는 복사본(copy)을 만드는 것만이 얕은 복사이고 나머지는 깊은 복사입니다.