Protocol

NSCopying

A protocol that objects adopt to provide functional copies of themselves. オブジェクトがそれら自身の機能的複製を提供するために採用するあるプロトコル。

Declaration 宣言

@protocol NSCopying

Overview 概要

The exact meaning of “copy” can vary from class to class, but a copy must be a functionally independent object with values identical to the original at the time the copy was made. A copy produced with NSCopying is implicitly retained by the sender, who is responsible for releasing it. “複製” の正確に意味するところはクラスによって様々です、しかしある複製はその複製が作成された時での元のものと同一の値を持つ機能的に独立したオブジェクトでなければなりません。NSCopyingで生成される複製は、それを解放する責任を持つ送り手によって暗黙的に保有されます。

NSCopying declares one method, copyWithZone:, but copying is commonly invoked with the convenience method copy. The copy method is defined for all objects inheriting from NSObject and simply invokes copyWithZone: with the default zone. NSCopyingは1つのメソッド、copyWithZone:を宣言します、しかしコピー作業は一般に便宜メソッドcopyで発動されます。copyメソッドは、NSObjectから継承するすべてのオブジェクトに対して定義されます、そして単にcopyWithZone:を省略時のゾーンで発動します。

Your options for implementing this protocol are as follows: このプロトコルを実装するためのあなたの選択肢は、次のとおりです:

  • Implement NSCopying using alloc and init... in classes that don’t inherit copyWithZone:. NSCopyingを、allocinit...を使ってcopyWithZone:から継承しないクラスにおいて実装してください。

  • Implement NSCopying by invoking the superclass’s copyWithZone: when NSCopying behavior is inherited. If the superclass implementation might use the NSCopyObject function, make explicit assignments to pointer instance variables for retained objects. NSCopyingを、スーパークラスの持つcopyWithZone:を発動することで実装してください、NSCopying挙動が継承される場合は。スーパークラス実装がNSCopyObject関数を使うかもしれないならば、保有されるオブジェクトのためのポインタインスタンス変数に対して明示的な割り当てをしてください。

  • Implement NSCopying by retaining the original instead of creating a new copy when the class and its contents are immutable. NSCopyingを、新しい複製を作成する代わりに、元のものを保有することによって実装してください、クラスとそれの内容が不変である場合は。

If a subclass inherits NSCopying from its superclass and declares additional instance variables, the subclass has to override copyWithZone: to properly handle its own instance variables, invoking the superclass’s implementation first. サブクラスがNSCopyingをそれのスーパークラスから継承してそして追加のインスタンス変数を宣言するならば、サブクラスはcopyWithZone:をオーバーライドすることで、スーパークラスの持つ実装を最初に発動して、適切にそれ自身のインスタンス変数を取り扱わなければなりません。

Topics 話題

Copying 複製する

Relationships 関係

Conforming Types これらの型が準拠

See Also 参照

Copying 複製する