macOS/iOS API解説

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

目次

initWithBytesNoCopy:length:freeWhenDone:

INDEX>Foundation> NSData

指定したポインタから指定した長さのデータオブジェクトを初期化して返します

Objective-C

-(id)initWithBytesNoCopy:(void *)bytes
         length:(NSUInteger)length
         freeWhenDone:(BOOL)flag

Swift


    

解説

指定したポインタから指定した長さのデータオブジェクトを初期化して返します。
元のデータのコピーは作成しません。
flagがYESの場合、使用後はメモリを解放します。bytesはmalloc()で得た領域でなければいけません。
flagがNOの場合は自動的に解放されません。

返り値

Objective-C

( id )

Swift


    


データ

引数

バイト列

Objective-C

( void * )bytes

Swift


    

Objective-C

( NSUInteger )length

Swift


    

長さ

Objective-C

( unsigned )length

Swift


    

使用後解放するか

Objective-C

( BOOL )flag

Swift


    

クラス

NSData

使用可能

10.2

参照

- initWithBytes:length:
+ dataWithBytes:length:

関連記事(外部サイト)

更新時バージョン

OS X 10.10
iOS 8.0

例文

Objective-C

#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

Swift