Cocoa为我们提供了NSData类,该类包装了大量字节,你可以获得数据的长度和指向字节起始位置的指针,因为NSData是一个对象,适用于常规的内存管理行为。因此,如果将数据块传递给一个函数或方法,可以通过传递一个自动释放NSData来实现,无需担心内存清除问题。
NSData对象是不可改变的,它们创建后不能改变。可以使用它们,但不能更改其中的内容,但是NSMutableData支持在数据内容中添加和删除字节。
代码:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib. const char *string="Hi there,this is a C string";
NSData *data=[NSData dataWithBytes:string length:strlen(string)+1];
NSLog(@"data is %@",data);
NSLog(@"%ld byte string is '%s'",[data length],[data bytes]);
}
输出:
2015-08-09 11:24:35.089 NSData[651:13098] data is <48692074 68657265 2c746869 73206973 20612043 20737472 696e6700>
2015-08-09 11:24:35.090 NSData[651:13098] 28 byte string is 'Hi there,this is a C string'