2012-01-18 6 views
1

プロパティ宣言では、 "copy"属性を送信することができます。すべてのオブジェクトに対してcopyを使用することはできませんが、コピーアトリビュートを使用できるオブジェクトはどれですか?どのクラスをコピーできますか?

+0

私の本は(次のコンテキストで)属性としてコピー説明:@property(アトミック、コピー) – Foo

答えて

6

-copyは属性ではありません。 -copyNSCopyingプロトコルを実装するオブジェクトに送信することはOKです。

プロパティがある場合、NSCopyingを実装するクラスの場合は、copy属性を使用できますか?すなわち、-copyに送ることができる任意のクラス。

+0

私の本は(次のコンテキストで)属性としてコピー説明: @property(アトミック、コピー) – Foo

+0

@foo :申し訳ありませんが、私はあなたの質問で "送ってください"という言葉を見て、あなたがメッセージを送ったと思っていました。 – JeremyP

+0

@Foo:プロパティについても話を編集しました。 – JeremyP

0

クラスをコピーすることはできません。コピーはインスタンスメソッドであり、別のインスタンスからクローンインスタンスを作成します。インスタンスをコピー可能にするには、NSCopyingプロトコルを実装する必要があります。一部のNSFundation/Cocoaクラスで実装されていますが、一部では実装されていません。それらのために、あなたはカテゴリを使って実装を書く必要はありません。しかし、これはUIクラスにとって非常に難しいことに注意してください。

関連する問題