Objective-C NSString NSData Byte等转换
// 整形转NSString,其他数字类型类似
int i= 123;
NSString *str = [NSString stringWithFormat:@"%d", i];
// NSSting转整形,转其他数字类型类似
i= [str intValue];
float f = [str floatValue];
{
// NSData --> NSString
Byte array[] = {0, 0, 0, 0};
NSData *data = [NSData dataWithBytes: array length: sizeof(array)];
NSString *string = [[NSStringalloc] initWithData: dataencoding:NSUTF8StringEncoding];
}
{
// NSString --> NSData
NSString *string = @"Hello,World!";
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding];
}
{
// NSData --> Byte
Byte array[] = {0, 0, 0, 0};
NSData *data = [NSData dataWithBytes: array length: sizeof(array)];
Byte *bytes = (Byte *)[data bytes];
}
{
// NSString --> hex
NSString *string = @"1a1b1c1d";
const char *buf = [string UTF8String];
NSMutableData *data = [NSMutableDatadata];
if (buf)
{
uint32_t len = strlen(buf);
char singleNumberString[3] = {'\0', '\0', '\0'};
uint32_t singleNumber = 0;
for(uint32_t i = 0 ; i < len; i+=2)
{
if ( ((i+1) < len) && isxdigit(buf[i]) && (isxdigit(buf[i+1])) )
{
singleNumberString[0] = buf[i];
singleNumberString[1] = buf[i + 1];
sscanf(singleNumberString, "%x", &singleNumber);
uint8_t tmp = (uint8_t)(singleNumber & 0x000000FF);
[dataappendBytes:(void *)(&tmp)length:1];
}
else
{
break;
}
}
}
}
Objective-C 数据类型转换
本文介绍了Objective-C中不同数据类型之间的转换方法,包括NSString、NSData、Byte及十六进制之间的相互转换。通过示例代码详细展示了如何实现这些转换。
178

被折叠的 条评论
为什么被折叠?



