0
(nonatomic, copy)
と宣言されている場合は、プロパティへのアクセスごとにNSStringがコピーされますか?異なるスレッドからアクセスされるNSStringのメモリ属性のコピー
文字列が異なるスレッドからアクセス/変更され、コピーで宣言されている場合、NSLockを使用して文字列へのアクセスをラップする必要がありますか?
(nonatomic, copy)
と宣言されている場合は、プロパティへのアクセスごとにNSStringがコピーされますか?異なるスレッドからアクセスされるNSStringのメモリ属性のコピー
文字列が異なるスレッドからアクセス/変更され、コピーで宣言されている場合、NSLockを使用して文字列へのアクセスをラップする必要がありますか?
copy
属性は、プロパティを割り当てるときに、オブジェクトのコピーが作成されることを示します。プロパティは不変であるNSString *
、であれば、何の問題の場合はありません、
- (NSString *)myProperty {
return _myProperty;
}
最後に:しかし、ゲッターは常にオブジェクトのコピーを返します
- (void)setMyProperty:(NSString *)value {
_myProperty = [value copy];
}
:セッターのようになるはずですそれを同時に読むスレッドがたくさんあります。プロパティにアクセスするためにロックを使用する必要はありません。
AppleのドキュメントCopy Properties Maintain Their Own Copyをご覧ください。
ありがとうございました。私は異なるスレッドからのアクセス/変更を意味していました。 – jarryd