0
블루투스 저에너지 애플리케이션에 문제가 있습니다. 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]]];
은 그 때 나는 4 개 개의 시간 값을 얻을 : "6시", "8시", "10시", "17시". 거기에 더 좋은 방법이 있지만 그게 내 질문이 아니라는 것을 알고 있습니다. 그것은 매우 빨리 끝내야했습니다.
하지만 시간 값을 NSData 객체로 다시 변환 할 때 많은 문제가 있습니다. 나는 거의 성공하지 못한 채로 내 마음에 온 모든 것을 시도했다. 내가 원한 값인 <06000800 10001700>
처럼 보이는 NSData 객체가 필요하다. @"0600080010001700"
자릿수를 포함하는 NSString이 있습니다. 다음에 무엇을해야합니까?
도움이된다면, 다음에해야 할 일이 전혀 없습니다.
문자열은 어떻게 작성 되었습니까? 원래 문자열이 이상적인 방법으로 생성되지 않은 것 같습니다. – rmaddy
블루투스 장치가 값을 저장하는 방식을 바꿀 수 없기 때문에 내가 가지고있는 것으로 작업해야합니다. 시간 값이 앱에로드 된 후 필자는 @ "hh : mm"과 같은 텍스트 필드에 값을 저장하는 피커 뷰로 변경할 수 있습니다. 사용자가 시간 지정을 마친 후에는 텍스트 필드를 읽고 콜론을 제거한 다음 원래 특성의 값과 같은 모양의 문자열로 병합합니다. – daydr3amer