如何将NSString转换为NSData

时间:2013-12-09 19:11:47

标签: cocoa-touch encoding bluetooth nsstring nsdata

我的蓝牙低功耗应用程序出现问题。

我像这样读出数据:

NSLog("%@", characteristic.value); //<06000800 10001700>        
NSString *rawData = [NSString stringWithFormat:@"%@", characteristic.value];
        rawData = [rawData stringByReplacingOccurrencesOfString:@" " withString:@""];
        rawData = [rawData stringByReplacingOccurrencesOfString:@"<" withString:@""];
        rawData = [rawData stringByReplacingOccurrencesOfString:@">" withString:@""];
        NSMutableArray *splitData = [[NSMutableArray alloc] init];
        [splitData addObject:[rawData substringWithRange:NSMakeRange(0, 2)]];
        [splitData addObject:[rawData substringWithRange:NSMakeRange(2, 2)]];
        [data replaceObjectAtIndex:3 withObject:[NSString stringWithFormat:@"%@:%@", [splitData objectAtIndex:0], [splitData objectAtIndex:1]]];
        [splitData addObject:[rawData substringWithRange:NSMakeRange(4, 2)]];
        [splitData addObject:[rawData substringWithRange:NSMakeRange(6, 2)]];
        [data replaceObjectAtIndex:4 withObject:[NSString stringWithFormat:@"%@:%@", [splitData objectAtIndex:2], [splitData objectAtIndex:3]]];
        [splitData addObject:[rawData substringWithRange:NSMakeRange(8, 2)]];
        [splitData addObject:[rawData substringWithRange:NSMakeRange(10, 2)]];
        [data replaceObjectAtIndex:5 withObject:[NSString stringWithFormat:@"%@:%@", [splitData objectAtIndex:4], [splitData objectAtIndex:5]]];
        [splitData addObject:[rawData substringWithRange:NSMakeRange(12, 2)]];
        [splitData addObject:[rawData substringWithRange:NSMakeRange(14, 2)]];
        [data replaceObjectAtIndex:6 withObject:[NSString stringWithFormat:@"%@:%@", [splitData objectAtIndex:6], [splitData objectAtIndex:7]]];

然后我得到四个时间值:“06:00”,“08:00”,“10:00”,“17:00”。 我知道有更好的方法可以做到这一点,但这不是我的问题。它必须很快完成。

但是,在将时间值转换回NSData对象时,我遇到了很多麻烦。 我已经尝试了所有想到的东西,甚至几乎没有成功。我需要的是一个看起来像原始值<06000800 10001700>的NSData对象。我有一个NSString,其中包含数字@"0600080010001700"。我接下来该怎么办?

感谢任何帮助,我真的不知道下一步该做什么。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。花了很长时间,但现在它正在发挥作用。

Converting HEX NSString To NSData