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