iOS开发-NSData与NSMutableData使用与分析

来源:互联网 发布:windows改变图标 编辑:程序博客网 时间:2024/04/30 01:58

在Objective-C中,NSData及其子类是我们经常会遇到的类,他到底是一个什么样特性的类呢?

今天我们来揭开它的庐山真面目!

////  main.m//  TestNSData&NSDate////  Created by ibokan on 14-8-10.//  Copyright (c) 2014年. All rights reserved.//#import<Foundation/Foundation.h>int main(int argc,const char * argv[]){   @autoreleasepool {                char *str="A C string!";        char *str2="B C string!";        char *str3="C C string";        NSData *data1=[NSData dataWithBytes:strlength:strlen(str)+1];//创建不可变的字节对象       NSLog(@"不可变的data1的字节是:%@",data1);//输出十六进制的ASCII编码,当然要加上最后的字符串的结尾符号,所以长度要加一               NSLog(@"不可变的data1的长度是:%d,输出指针:%s",[data1 length],[data1 bytes]);//length是字节的长度,bytes是返回一个指针        NSData *data2=[NSData dataWithBytes:str2length:strlen(str2)+1];//用于追加到可变G的mdata的中间对象                NSMutableData *mdata=[NSMutableData dataWithBytes:str3 length:strlen(str3)+1];                [mdataappendData:data2];//追加data对象                [mdataappendBytes:str length:strlen(str)+1];//2.追加字符串                NSLog(@"可变的字节对象:%@",mdata);            }    return 0;}

输出结果:


2014-08-10 17:19:46.795 TestNSData&NSDate[1214:303]不可变的data1的字节是:<41204320 73747269 6e672100>2014-08-10 17:19:46.805 TestNSData&NSDate[1214:303]不可变的data1的长度是:12,输出指针:A C string!2014-08-10 17:19:46.805 TestNSData&NSDate[1214:303]可变的字节对象:<43204320 73747269 6e670042 20432073 7472696e 67210041 20432073 7472696e 672100>Program ended with exit code: 0

2014-08-10 17:19:46.795 TestNSData&NSDate[1214:303]不可变的data1的字节是:<41204320 73747269 6e672100>2014-08-10 17:19:46.805 TestNSData&NSDate[1214:303]不可变的data1的长度是:12,输出指针:A C string!

2014-08-10 17:19:46.805 TestNSData&NSDate[1214:303]可变的字节对象:<43204320 73747269 6e670042 20432073 7472696e 67210041 20432073 7472696e 672100>Program ended with exit code: 0

0 0