initWithBytesNoCopy:length:freeWhenDone:
指定したポインタから指定した長さのデータオブジェクトを初期化して返します
-(id)initWithBytesNoCopy:(void *)bytes length:(NSUInteger)length freeWhenDone:(BOOL)flag
解説
指定したポインタから指定した長さのデータオブジェクトを初期化して返します。
元のデータのコピーは作成しません。
flagがYESの場合、使用後はメモリを解放します。bytesはmalloc()で得た領域でなければいけません。
flagがNOの場合は自動的に解放されません。
引数
バイト列
( void * )bytes
( NSUInteger )length
長さ
( unsigned )length
使用後解放するか
( BOOL )flag
フレームワーク
Foundation
クラス
NSData
使用可能
10.2
参照
- initWithBytes:length:
+ dataWithBytes:length:
関連記事(外部サイト)
例文
#import "SetImage.h" @implementation SetImage - (IBAction)set:(id)sender { NSString *str = @"This is a pen."; void *sPointer; sPointer = (void *)[str cString]; NSData *dat1 = [[NSData alloc] initWithBytesNoCopy:sPointer length:[str cStringLength] freeWhenDone:YES]; NSLog([[NSString alloc] initWithData:dat1 encoding:NSASCIIStringEncoding]); } @end