NSData dataWithBytes的理解和用法

NSdata dataWithBytes 的常见写法如下

 char *str = "123456789";
 NSData *data = [NSData dataWithBytes:str length:strlen(str)];
 NSString *strN = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
 NSLog(@"%@",strN);

输出结果 如下
2016-11-18 15:12:30.103 测试文件[2167:161277] 123456789
分析,datawithbytes: 实际上是获取str在内存中的指针地址,length实际上是需要读写的长度.

因为char *类的指针是占一个字节,strlen(str)=9,所以后面就回读取9个字节.将"123456789"打印出来.

    char *str = "123456789";
    NSData *data = [NSData dataWithBytes:str length:strlen(str)-5];
    NSString *strN = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"%@",strN);

将length的长度减少为strlen(str)-5,NSData 也就写入了4个字节,打印结果如下
2016-11-18 15:17:05.134 测试文件[2190:165486] 1234

NSData dataWithBytes length 就是指定文件的首地址,然后指定长度,写入相应文件内容

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • /**ios常见的几种加密方法: 普通的加密方法是讲密码进行加密后保存到用户偏好设置( [NSUserDefaul...
    彬至睢阳阅读 8,190评论 0 7
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,382评论 30 472
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 6,389评论 0 7
  • 1.写一个NSString类的实现 +(id)initWithCString:(c*****t char *)nu...
    韩七夏阅读 9,183评论 2 37
  • “我们之间从来没有想象的那么接近,只是两棵树的距离” 这是《山阴路的夏天》的一句歌词,那是一首悲伤的小情歌。这句歌...
    寂静欢喜阅读 8,802评论 0 1