Instance Method
インスタンスメソッド
initWithBytesNoCopy:length:deallocator:
Initializes a data object filled with a given number of bytes of data from a given buffer, with a custom deallocator block.
与えられたバッファからの、与えられたバイト数のデータで満たされたデータオブジェクトを初期化します、あるあつらえのデアロケータブロックを使います。
Declaration
宣言
- (instancetype)initWithBytesNoCopy:(void *)bytes
length:(NSUInteger
)length
deallocator:(void (^)(void *bytes, NSUInteger
length))deallocator;
Parameters
パラメータ
bytes
A buffer containing data for the new object.
新しいオブジェクトに対するデータを含んでいるバッファ。
length
The number of bytes to hold from bytes
. This value must not exceed the length of bytes
.
bytes
から保持することになるバイト数。この値は、bytes
の長さを越えてはなりません。
deallocator
A block to invoke when the resulting NSData
object is deallocated.
結果のNSData
オブジェクトがデアロケートされる時に発動するブロック。
Return Value
戻り値
A data object initialized by adding to it length
bytes of data from the buffer bytes
. The returned object might be different than the original receiver.
それにlength
バイトのデータをバッファbytes
から追加することによって初期化されるデータオブジェクト。返されるオブジェクトは、オリジナルのレシーバとは異なるかもしれません。
Discussion
議論
Use this method to define your own deallocation behavior for the data buffer you provide.
このメソッドを使ってあなた独自のデアロケーション挙動をあなたが提供するデータバッファに対して定義してください。
In order to avoid any inadvertent strong reference cycles, you should avoid capturing pointers to any objects that may in turn maintain strong references to the NSData
object. This includes explicit references to self
, and implicit references to self
due to direct instance variable access. To make it easier to avoid these references, the deallocator
block takes two parameters, a pointer to the buffer
, and its length; you should always use these values instead of trying to use references from outside the block.
何らかの不注意による強い参照循環を防ぐために、あなたは逆にNSData
オブジェクトへの強い参照を保守するかもしれない何らかのオブジェクトへのポインタをキャプチャすることを避けるべきです。これは、self
への明示的な参照、そして直接のインスタンス変数アクセスが原因での暗黙的なself
への参照を含みます。それらの参照を防止するのをより簡単にするために、deallocator
は2つのパラメータを取ります、buffer
へのポインタ、そしてそれの長さ;あなた常にそれらの値を、ブロックの外側からの参照を使おうと試みる代わりに使用すべきです。
See Also
参照
Creating Data
データを作成する
+ data
Creates an empty data object.
空のデータオブジェクトを作成します。
+ dataWithBytes:length:
Creates a data object containing a given number of bytes copied from a given buffer.
ある与えられたバッファから複製されるある与えられた数のバイトを含んでいるデータオブジェクトを作成します。
+ dataWithBytesNoCopy:length:
Creates a data object that holds a given number of bytes from a given buffer.
ある与えられたバッファからある与えられた数のバイトを保持するデータオブジェクトを作成します。
+ dataWithData:
Creates a data object containing the contents of another data object.
別のデータオブジェクトの内容を含んでいるデータオブジェクトを作成します。
- initWithBytes:length:
Initializes a data object filled with a given number of bytes copied from a given buffer.
与えられたバッファから複製される、与えられた数のバイトで満たされたデータオブジェクトを初期化します。
- initWithBytesNoCopy:length:
Initializes a data object filled with a given number of bytes of data from a given buffer.
与えられたバッファからの、与えられたバイト数のデータで満たされたデータオブジェクトを初期化します。
- initWithData:
Initializes a data object with the contents of another data object.
あるデータオブジェクトを別のデータオブジェクトの内容で初期化します。