ios - 谁能告诉我函数的影响是什么?

标签 ios

第一种方法是:

-(NSData *)stringToAddBytes:(NSString*)addString
{
    int length = (int)[addString length];
    if(length < 2)
    {
        return nil;
    }
    Byte buf[length / 2];
    for(int i = 0 ;i < length/2 ;i++)
    {
        NSString *str = [addString substringWithRange:NSMakeRange(i * 2, 2)];
        Byte b = [self hexStringToByte:str];
        buf[i]=b;
    }

    NSData * myD = [[NSData alloc]initWithBytes:buf length:length/2];
    return myD;
}

第一个方法调用的方法。

-(Byte)hexStringToByte:(NSString*)str
{
    NSArray *charArray = [[NSArray alloc]initWithObjects:@"0",@"1",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",
                          @"A",@"B",@"C",@"D",@"E",@"F",nil];
    NSString *str1 = [str substringWithRange:NSMakeRange(0, 1)];
    int num1 = (int)[charArray indexOfObject:str1];
    NSString *str2 = [str substringWithRange:NSMakeRange(1, 1)];
    int num2 = (int)[charArray indexOfObject:str2];

    Byte b = num1*16+num2;
    return b;
}

谢谢你的回答。看起来大字符变成了小字符。

最佳答案

hexStringToByte: 会将十六进制数字表示形式的字符串(示例 @"FF")转换为 Byte 值(在此示例中为 255)。

stringToAddBytes: 使用 hexStringToByte: 创建 NSData 字节,将 addString 分解为两个字母豌 bean 并将它们转换到 Byte 值。

换句话说,这就是字符串序列化。

示例:

// 255 = 0xFF
// 170 = 0xAA
// 136 = 0x88
NSString* addString = @"FFAA88";
NSData* data = [self stringToAddBytes:addString];
// data will be [255, 170, 136]

请注意 NSData 不是数组,而是代表原始对象。

关于ios - 谁能告诉我函数的影响是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32006994/

相关文章:

ios - 设备静音时 AVAudioPlayer 没有声音

php - 从 Objective-C 应用程序发送 base64 到 PHP 服务器

iphone - 无法从异步 block 向主线程发送参数

ios - 如何为 iOS App 设置默认语言设置

ios - 在滚动具有多个部分的 UITableViewController 时修复 tableHeaderView

android - iOS 设备上的 Xamarin.forms 应用程序测试

ios - 180x180 图标真的是必需的吗?

ios - 处理 NSURLConnection 错误的最佳方法 - iPhone 开发

ios - 在 Info.plist iOS 中将 IP 范围添加到传输安全层

iOS Multipeer 连接框架 invitationHandler 似乎不接受?