NSData クラスリファレンス 翻訳元
このページの最終更新:2010-02-02
ADCの最終更新:2009-10-13
ADCの最終更新:2009-10-13
継承するクラス | NSObject |
準拠しているプロトコル | NSCoding NSCopying NSMutableCopying NSObject (NSObject) |
フレームワーク | /System/Library/Frameworks/Foundation.framework |
使用可能な環境 | Mac OS X v10.0以降 |
宣言ファイル | NSData.h |
コンパニオンガイド | Binary Data Programming Guide for Cocoa Property List Programming Guide |
サンプルコード | CocoaHTTPServer CocoaSOAP ImageClient QTMetadataEditor Sketch-112 |
概観(Overview)
NSDataクラスとその可変サブクラスであるNSMutableDataクラスはデータオブジェクトを提供します。つまり、バイトバッファをオブジェクト指向でラッピングします。データオブジェクトは単純な確保された領域(これにはポインタは含まれません)をFoundationオブジェクトとして扱えるようにします。
NSDataクラスは静的なデータオブジェクトを、NSMutableDataクラスは動的なデータオブジェクトを作成します。NSDataクラスやNSMutableDataクラスは特にデータストレージに使われ、アプリケーション同士のオブジェクトのやり取りにおいても有用であり、データオブジェクトに収容されたデータはアプリケーション同士で移動したりコピーしたりすることができます。
32ビットCocoaでは、データサイズは理論上2GBの制限(実際には、メモリ領域は他のオブジェクトに使われているはずなのでもっと小さい数字になります)がかけられています。64ビットCocoaではこのデータサイズの上限は理論的には約8EB(実際にはこの制限を要因[?]にすべきではありません)です。
NSDataクラスは静的なデータオブジェクトを、NSMutableDataクラスは動的なデータオブジェクトを作成します。NSDataクラスやNSMutableDataクラスは特にデータストレージに使われ、アプリケーション同士のオブジェクトのやり取りにおいても有用であり、データオブジェクトに収容されたデータはアプリケーション同士で移動したりコピーしたりすることができます。
32ビットCocoaでは、データサイズは理論上2GBの制限(実際には、メモリ領域は他のオブジェクトに使われているはずなのでもっと小さい数字になります)がかけられています。64ビットCocoaではこのデータサイズの上限は理論的には約8EB(実際にはこの制限を要因[?]にすべきではありません)です。
NSDataクラスはCore Foundationの対応するオブジェクトと「toll-free bridged」です。これはつまり、Core Foundationのオブジェクトは関数やメソッドの呼び出し内のFoundationオブジェクトと相互に交換可能だということを意味しています。したがって、メソッド内のNSData *パラメータにCFDataRefを渡すことも、 関数内のCFDataRefパラメータにNSDataインスタンスを渡すこともできます(コンパイル時の警告を回避するにはキャストする必要があります)。これはNSDataのコンクリートサブクラスにもいえます。詳しくは、「toll-free bridgeにおいて交換可能な型の詳細」を参照してください。
採用しているプロトコル(Adopted Protocols)
– encodeWithCoder: – initWithCoder:
– copyWithZone:
– mutableCopyWithZone:
このクラスでできること(Tasks)
データオブジェクトの作成(Creating Data Objects)
+ data + dataWithBytes:length: + dataWithBytesNoCopy:length: + dataWithBytesNoCopy:length:freeWhenDone: + dataWithContentsOfFile: + dataWithContentsOfFile:options:error: + dataWithContentsOfMappedFile: + dataWithContentsOfURL: + dataWithContentsOfURL:options:error: + dataWithData: – initWithBytes:length: – initWithBytesNoCopy:length: – initWithBytesNoCopy:length:freeWhenDone: – initWithContentsOfFile: – initWithContentsOfFile:options:error: – initWithContentsOfMappedFile: – initWithContentsOfURL: – initWithContentsOfURL:options:error: – initWithData:
データへのアクセス(Accessing Data)
– bytes – description – getBytes:length: – getBytes:range: – subdataWithRange: – rangeOfData:options:range: – getBytes: Deprecated in Mac OS X v10.6
データの確認(Testing Data)
– isEqualToData: – length
データの保存(Storing Data)
– writeToFile:atomically: – writeToFile:options:error: – writeToURL:atomically: – writeToURL:options:error: