ios - NSString stringWithFormat 添加了 "ffffff"

标签 ios objective-c nsstring nsdata

我正在尝试从 NSData 获取字节并将其放入 NSString。当我这样做时,同时添加了“ffffff”:

char *array = (char *)[deviceInfo bytes];
return [NSString stringWithFormat:@"%02x:%02x:%02x:%02x:%02x:%02x", array[5],array[4],array[3],array[2],array[1],array[0]];

返回“53:ffffffcb:ffffffb8:51:09:fffffff0”

最佳答案

此问题与符号扩展有关,因为编译器会将您的signed char 提升为unsigned int。带有fffff 的数字是负数。 %x 格式需要一个 unsigned int 参数。

正确声明 array 将解决问题:

const uint8_t *array = [deviceInfo bytes];

关于ios - NSString stringWithFormat 添加了 "ffffff",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37109935/

相关文章:

ios - (lldb) Firebase 错误

ios - 更改IOS工程名xcode导致的错误

ios - NSDictionary获取对象列表中的属性- objective-c

ios - 从 NSString 获取常用字符作为子字符串

objective-c - 使用 ARC 将 NSUInteger 转换为字符串

ios - didDetermineStateForRegion 和 didExitRegion 返回错误响应

ios - 修复 UIVisualEffectView 额外的光线模糊在白色背景上呈灰色

objective-c - 快速枚举协议(protocol)的有趣任务

objective-c - 在 iOS 9 中是否有替代(已弃用的)canOpenURL 的方法?

ios - 用重音符号替换字符 - ios