NSMutableCopying プロトコルリファレンス 翻訳元
このページの最終更新:2010-02-03
ADCの最終更新:2006-05-23
ADCの最終更新:2006-05-23
準拠しているクラス | 様々なCocoaのクラス |
フレームワーク | /System/Library/Frameworks/Foundation.framework |
使用可能な環境 | Mac OS X v10.0以降 |
コンパニオンガイド | Memory Management Programming Guide for Cocoa |
宣言ファイル | NSObject.h |
概観(Overview)
NSMutubleCopyingプロトコルではオブジェクトの可変コピーの為のメソッドを宣言しています。「不変と可変」の区別をしているクラスのみ、このプロトコルを採用すべきです。このような区別を定義していないクラスは代わりにNSCopyingプロトコルに準拠すべきです。
NSMutableCopyingプロトコルではmutableCopyWithZone:の一つのメソッドを定義していますが、可変コピーは基本的に簡易メソッドであるmutableCopyメソッドを呼び出して行います。mutableCopyメソッドは全てのNSObjectに定義され、単にmutableCopyWithZone:メソッドをデフォルトのゾーンで呼び出すだけです。
サブクラスがスーパークラスからNSMutableCopyingプロトコルを継承していて、新たなインスタンス変数を宣言している場合、サブクラスは自信のインスタンス変数を適切に制御する為にmutableCopyWithZone:メソッドをオーバーライドし、スーパークラスの実装を最初に呼び出さなければなりません。
NSMutableCopyingプロトコルではmutableCopyWithZone:の一つのメソッドを定義していますが、可変コピーは基本的に簡易メソッドであるmutableCopyメソッドを呼び出して行います。mutableCopyメソッドは全てのNSObjectに定義され、単にmutableCopyWithZone:メソッドをデフォルトのゾーンで呼び出すだけです。
サブクラスがスーパークラスからNSMutableCopyingプロトコルを継承していて、新たなインスタンス変数を宣言している場合、サブクラスは自信のインスタンス変数を適切に制御する為にmutableCopyWithZone:メソッドをオーバーライドし、スーパークラスの実装を最初に呼び出さなければなりません。
このクラスでできること(Tasks)
複製(Copying)
- mutableCopyWithZone: required method
インスタンスメソッド
mutableCopyWithZone:
可変コピーをした新しいオブジェクトを返します。
- (id)mutableCopyWithZone:(NSZone *)&italic(){zone}
パラメータ
- zone
- 新しいインスタンスが確保されるゾーン。NULLであれば、新しいオブジェクトはNSDefaultMallocZoneで返されるデフォルトのゾーンに確保される。
解説
- 送信者は返されたオブジェクトを暗黙のうちに保持し、リリースする責任を負います。返された複製は複製元が可変、不変どちらであっても可変オブジェクトになります。
使用条件
- Mac OS X v10.0以降
関連項目
- copyWithZone: (NSCopying Protocol) - mutableCopy (NSObject class)
宣言ファイル
- NSObject.h