NSData dataWithBytes的理解和用法

2016-11-18  本文已影响0人  蝼蚁撼树

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 就是指定文件的首地址,然后指定长度,写入相应文件内容

上一篇 下一篇

猜你喜欢

热点阅读