В настоящее время у меня есть несколько методов экземпляра для генерации некоторых данных, которые я хотел бы изменить для одного метода, который принимает ввод, который я передаю ему, компилятор сообщает что инициализатор массива должен быть списком инициализатора или строковым литералом.XCode IOS метод ввода из const unsigned char для массива
Im передавая строку методу, как это: -
[self buildrawdata2:(const unsigned char *)"0ORANGE\0"];
Вот метод, который работает, когда массив использует строку значение «0ORANGE \ 0», то строка я прохожу через также отсутствует символ «\ 0» с конца, я считаю, что это потому, что его управляющий символ/бежать последовательности, есть в любом случае, чтобы сохранить это и передать его как строку HARDCODED ниже: -
- (void)buildrawdata2:(const unsigned char *)inputString2;
{
NSLog(@"ViewController::buildrawdata2");
NSLog(@"ViewController::buildrawdata2 - inputstring2: %s", inputString2);
//this works when set like this
const unsigned char magic2[] = "0ORANGE\0";
const uint8_t pattern1 = {0xFC};
const uint8_t pattern2 = {0xE0};
uint8_t rawdata2[56];
uint8_t index = 0;
int byte = 0;
int bit = 0;
while (magic2[byte] != 0x00) {
while (bit < 8) {
if (magic2[byte] & (1<<bit)) {
//add pattern2 to the array
rawdata2[index++] = pattern2;
}else{
//add pattern1 to the array
rawdata2[index++] = pattern1;
}
// next bit please
bit++;
}
//next byte please
byte++;
//reset bit index
bit = 0;
}
NSLog(@"buildrawdata2::RawData %@", [NSData dataWithBytes:rawdata2 length:56]);
}