Это вопрос, связанный с тем, который я опубликовал ранее сегодня. Сначала я искал, как лучше всего реализовать copyWithZone для объекта, который подклассов NSObject.Я очень доволен тем, что у меня есть (см. 001 :), но хотел спросить об удалении сеттеров (если это даже имеет значение, пожалуйста, скажите, если это действительно не нужно).
Мне было указано, что ямог бы написать:
newCrime->_title = [_title copyWithZone:zone];
У меня два вопроса: во-первых, ->
использует нотацию C ++, существует ли способ target-c для доступа к свойству объекта (без использования нотации setter / dot)?
Наконец, assign
и strong
как бы я их написал, я почти уверен, что присвоение будет:
newCrime->_coordinate = _coordinate;
, но я не уверен, для чего писатьсильный указатель;
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;
}