在项目中,发现直接使用NSData的bytes方法出现数组越界情况。
测试代码:
1 | NSString *key = @"1234abcd"; |
发现,打印结果为:
1 | 1234abcd 1234abcdßéV˙ 8 |
显然,bytes方法返回的数据多了一些异常的字符,查看文档:
1 | The -bytes method returns a pointer to a contiguous region of memory managed by the receiver. |
说明,bytes方法返回的是一段连续的内存空间,可能连带着一些多余的字符。替换方法:
1 | - (void)getBytes:(void *)buffer length:(NSUInteger)length; |