OC数据类型转换
来源:互联网 发布:淘宝图片去同款 编辑:程序博客网 时间:2024/06/05 17:34
一、NSString和NSData
1、NSString 转 NSData
NSString *aString = @"1234abcd";NSData *aData = [aString dataUsingEncoding: NSUTF8StringEncoding];
2、NSData 转 NSString
NSString *aString = [[NSString alloc] initWithData:adata encoding:NSUTF8StringEncoding];
二、NSData和Byte
1、NSData 转 Byte
NSString *testString = @"1234567890";NSData *testData = [testString dataUsingEncoding: NSUTF8StringEncoding];Byte *testByte = (Byte *)[testData bytes];
2、Byte 转 NSData
Byte byte[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23}; NSData *adata = [[NSData alloc] initWithBytes:byte length:sizeof(byte)];
三、NSString和char
1、NSString转char
const char * filePathChar = [filePath UTF8String];
2、char转nsstring
char myChar = 'a';NSString * string = [NSString stringWithFormat:@"%c", myChar];
四、NSString和short
1、NSString转unsigned short
unsigned short * utfString = [nsString cStringUsingEncoding:NSUTF16StringEncoding];
五、16进制字符串和NSData
1、将16进制的字符串转换成NSData
+ (NSMutableData *)convertHexStrToData:(NSString *)str { if (!str || [str length] == 0) { return nil; } NSMutableData *hexData = [[NSMutableData alloc] initWithCapacity:8]; NSRange range; if ([str length] %2 == 0) { range = NSMakeRange(0,2); } else { range = NSMakeRange(0,1); } for (NSInteger i = range.location; i < [str length]; i += 2) { unsigned int anInt; NSString *hexCharStr = [str substringWithRange:range]; NSScanner *scanner = [[NSScanner alloc] initWithString:hexCharStr]; [scanner scanHexInt:&anInt]; NSData *entity = [[NSData alloc] initWithBytes:&anInt length:1]; NSLog(@"转换数据--%ld:%@", (long)i,entity); [hexData appendData:entity]; range.location += range.length; range.length = 2; } return hexData;}
2、将NSData转换成16进制的字符串
+ (NSString *)convertDataToHexStr:(NSData *)data { if (!data || [data length] == 0) { return @""; } NSMutableString *string = [[NSMutableString alloc] initWithCapacity:[data length]]; [data enumerateByteRangesUsingBlock:^(const void *bytes, NSRange byteRange,BOOL *stop) { unsigned char *dataBytes = (unsigned char*)bytes; for (NSInteger i =0; i < byteRange.length; i++) { NSString *hexStr = [NSString stringWithFormat:@"%x", (dataBytes[i]) &0xff]; if ([hexStr length] == 2) { [string appendString:hexStr]; } else { [string appendFormat:@"0%@", hexStr]; } } }]; return string;}
阅读全文
0 0
- oc 数据类型转换
- OC数据类型转换学习
- OC中的数据类型转换
- oc数据类型的转换
- OC数据类型转换
- OC各种数据类型之间的转换方法
- OC各种数据类型之间的转换方法
- OC各种数据类型之间的转换方法
- OC各种数据类型之间的转换方法
- OC各种数据类型之间的转换方法
- oc-NSData与其他数据类型之间转换
- OC各种数据类型之间的转换方法
- OC各种数据类型之间的转换方法
- oc 数据类型
- OC数据类型
- OC数据类型
- 数据类型 oc
- OC 数据类型
- servlet是单例和struts2的action多例的理解
- gsoap的c++ server和java client实现
- 通过爬虫获取银行名称
- 第12期 《不悔梦归处》7月刊
- React-Native实战之(清理app缓存+Redux合成)
- OC数据类型转换
- 优化做缓存用的std::map<std::string, X> (自己的C++小工具系列1)
- Java菜鸟学习日记5
- 垃圾回收 堆内存 Xms Xmx PermSize MaxPermSize 区别
- 【数据库SQL实践】查找所有已经分配部门的员工的last_name和first_name
- open live writer代码着色插件
- React-Native打包发布(Android)
- Nginx与Apache服务器的特性比较
- React-Native 热更新尝试(Android)