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 = [stringdataUsingEncoding: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;
}
}
}
}