macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

allocWithZone:

ゾーンからオブジェクトを作成します
+(id)allocWithZone:(NSZone *)zone:

解説

ゾーン(zone)からオブジェクトを作成します。
サブクラスは、オーバーライドしてはいけません。代わりにそのクラス専用の初期化メソッドとしてinit...メソッドを使用します。
alloc...で作ったオブジェクトは、不要になったらreleaseかautoreleaseでメソッドを解放する必要があります。

オブジェクトが別のオブジェクトを作成する時には同じメモリ領域(ゾーン)にアロケートすることが勧められています。オブジェクトのゾーンは[self zone]で得ることができます。

初期化プロセスを完了させるためには以下のような形式でinit...メソッドを使用します。
TheClass *newObject = [[TheClass allocWithZone:myZone] init];

返り値

( id )

オブジェクト

引数

( NSZone * )zone

ゾーン。NULLを指定した場合はデフォルトのゾーン(NSDefaultMallocZone()の結果と同じ)に配置されます。

クラス

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]