allocWithZone:
ゾーンからオブジェクトを作成します
+(id)allocWithZone:(NSZone *)zone:
解説
ゾーン(zone)からオブジェクトを作成します。
サブクラスは、オーバーライドしてはいけません。代わりにそのクラス専用の初期化メソッドとしてinit...メソッドを使用します。
alloc...で作ったオブジェクトは、不要になったらreleaseかautoreleaseでメソッドを解放する必要があります。
オブジェクトが別のオブジェクトを作成する時には同じメモリ領域(ゾーン)にアロケートすることが勧められています。オブジェクトのゾーンは[self zone]で得ることができます。
初期化プロセスを完了させるためには以下のような形式でinit...メソッドを使用します。
TheClass *newObject = [[TheClass allocWithZone:myZone] init];
返り値
( id )
オブジェクト
引数
( NSZone * )zone
ゾーン。NULLを指定した場合はデフォルトのゾーン(NSDefaultMallocZone()の結果と同じ)に配置されます。
フレームワーク
Foundation
クラス
NSObject
Class Methods
使用可能
10.0
参照
例文
NSString *string =[NSMenuItem allocWithZone:[NSMenu menuZone]] //--- [string release]; //////// NSMutableData *pdfData = [[NSMutableData allocWithZone:[self zone]] init]; //////// [[NSTextStorage allocWithZone:[self zone]] init]