이것은 이전에 게시 한 것과 관련된 질문입니다. NSObject를 서브 클래 싱하는 객체에 대해 copyWithZone을 구현하는 가장 좋은 방법을 먼저 살펴 보았습니다. 나는 내가 가지고있는 것에 만족한다. (001 참조) 세터를 제거하는 것에 대해 물어보고 싶다.인스턴스 변수를 직접 설정 하시겠습니까?
가 그것은 내가 쓸 수있는 나에게 지적되었다
newCrime->_title = [_title copyWithZone:zone];
내가 먼저이 개 질문의 ->
는 C++ 표기법을 사용하고, 객체의 속성에 액세스의 목표 - C의 방법은 (이 setter/dot 표기법을 사용하지 않고)?
newCrime->_coordinate = _coordinate;
하지만 강한 포인터 작성하는 일에 대해 확실하지 않다;
마지막으로, assign
및 strong
나는 사람들을 작성하는 방법, 나는 할당이 될 것이라고 확신
newCrime->_month =
.
@property(nonatomic, strong) NSString *month;
@property(nonatomic, strong) NSString *category;
@property(nonatomic, assign) CLLocationCoordinate2D coordinate;
@property(nonatomic, strong) NSString *locationName;
@property(nonatomic, copy) NSString *title;
@property(nonatomic, copy) NSString *subtitle;
.
// 001:
- (id)copyWithZone:(NSZone *)zone {
Crime *newCrime = [[[self class] allocWithZone:zone] init];
if(newCrime) {
[newCrime setMonth:_month];
[newCrime setCategory:_category];
[newCrime setCoordinate:_coordinate];
[newCrime setLocationName:_locationName];
[newCrime setTitle:_title];
[newCrime setSubtitle:_subtitle];
}
return newCrime;
}
은 C++ 관련하여, 내 사과를 주셔서 감사합니다, 나는 언급했다 객체의 변수. @interface에서 __strong __weak 등으로 변수를 지정하면 이후에 직접 할당하는 것만으로 충분합니다. 즉 newCrime -> _ month = _month; ? – fuzzygoat
@fuzzygoat 예, ARC는 필요에 따라 보관/해제주기를 추가합니다. 그러나'copy '속성은'-copy' selector를 사용하여 강하고 할당되어야합니다. –
감사합니다. Richard에게 많은 감사를드립니다. copyWithZone 구현과 관련하여 -copyWithZone을 사용하여 복사 속성을 할당하고 싶습니다. – fuzzygoat