iOS代码片段
来源:互联网 发布:当前网络安全形势 编辑:程序博客网 时间:2024/05/23 23:42
一、字符串与NSData之间直接转换
NSData * convertHexStrToData(NSString *str)
{
if (!str || [str length] ==0) {
returnnil;
}
NSString * trimmingStr = [str stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]];
NSMutableData *hexData = [[NSMutableData alloc] initWithCapacity:8];
NSRange range;
if ([trimmingStr length] %2 == 0) {
range = NSMakeRange(0,2);
} else {
range = NSMakeRange(0,1);
}
for (NSInteger i = range.location; i < [trimmingStr length]; i +=2) {
unsignedint anInt;
NSString *hexCharStr = [trimmingStr substringWithRange:range];
NSScanner *scanner = [[NSScanner alloc] initWithString:hexCharStr];
[scanner scanHexInt:&anInt];
NSData *entity = [[NSData alloc] initWithBytes:&anInt length:1];
[hexData appendData:entity];
range.location += range.length;
range.length = 2;
}
return hexData;
}
NSString * convertDataToHexStr(NSData *data) {
if (!data || [data length] ==0) {
return@"";
}
NSMutableString *string = [[NSMutableString alloc] initWithCapacity:[data length]];
[data enumerateByteRangesUsingBlock:^(constvoid *bytes, NSRange byteRange,BOOL *stop) {
unsignedchar *dataBytes = (unsignedchar*)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;
}
- iOS 代码片段
- IOS 代码片段
- ios一些代码片段
- ios 代码片段
- ios代码片段
- iOS代码片段
- IOS实用代码片段
- iOS实用代码片段
- iOS代码片段CodeSnippets
- iOS开发:代码片段
- iOS 代码片段
- iOS代码片段
- iOS 网络编成代码片段
- iOS 有用的代码片段
- iOS常用动画代码片段
- iOS 常见代码片段 二
- IOS 复用代码片段
- IOS实用代码片段 2
- php 格式化字节大小
- 关于营改增
- Qt Quick图形效果
- 函数指针作为参数传递
- nginx 之 注意事项
- iOS代码片段
- 分析Android引起的“电视智能化”之TV用UI的现状与未来
- ZigBee协议栈看门狗
- 多选框是否选中、div强制换行、首行缩进、鼠标手状
- 初尝渗透2
- js 正则表达式 贪婪与惰性
- MVP设计模式进行Android应用开发
- AXI Stream接口,AXI 流接口规范
- Uva-839 + Uva-699