これは私が以前に投稿したものと関連した質問です。最初はNSObjectをサブクラス化するオブジェクトに対してcopyWithZoneをどのように実装するのが最適かを見ていました。私は私が持っているものにかなり満足しています(001参照)が、セッターを取り除くことについて尋ねたがっています。インスタンス変数を直接設定していますか?
は、それは私が書くことができることを私に指摘された:
newCrime->_title = [_title copyWithZone:zone];
私が最初に二つの質問を持って、->
はC++の表記を使用している、オブジェクトのプロパティにアクセスするのObjective-Cの方法は(ありセッター/ドット表記を使わずに)?
は最後に、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;
}
がC++に関して、私の謝罪をありがとう、私はを参照してオブジェクトの変数。 @interfaceに__strong __weakなどの変数を指定すると、後でnewCrime - > _ month = _monthのように直接割り当てるだけで十分です。 ? – fuzzygoat
@fuzzygoatはい、ARCは必要に応じて保持/リリースサイクルを追加します。しかし、 'copy'プロパティは強く、' -copy'セレクタを使って割り当てる必要があることに注意してください。 –
ありがとう、リチャードに感謝します。コピーライトプロパティを-copyWithZoneを使用して割り当てたいと思うcopyWithZone実装に関して、私はそれを推測していますか? – fuzzygoat