Я изо всех сил пытался решить этот вопрос самостоятельно, но я потратил много времени на что-то столь же простое, как это, поэтому я надеюсь, что кто-то может дать мне ответ.см. изображение ниже, но в основном я просто пытаюсь построить диапазон, но мой маркер и мой список никогда не встречаются, хотя есть элементы, которые соответствуют критериям.
в приведенном ниже примере я ищу 2c, и массив находится в позиции 11но просто идет мимо этого.
![enter image description here](https://i.stack.imgur.com/hJOEO.png)
Я пробовал несколько разных способов, и приведенное выше сравнение работает просто отлично, поэтому я не понимаю, где моя проблема.я попытался просто сказать
== 0x2c
(никогда не оценивает)
или использовать это так, как у меня было выше
`intValue`
, но это заставило его получить совпадение на 2D, котороемой тест состоит в том, что он усекает цифры до простого 2.
АКТУАЛЬНЫЙ КОД:
int lastIndexInPayload = ([payload count]-1);
int beginningOfData = ([payload count]-1);
NSString * endOfLine = [NSString stringWithFormat:@"%02X", 0x0D];
NSString * startOfLine = [NSString stringWithFormat:@"%02X", 0x2C];
if ([[payload objectAtIndex:lastIndexInPayload]intValue] == [endOfLine intValue]) {
while ([payload objectAtIndex:beginningOfData]!= startOfLine) {
beginningOfData--;
DDLogVerbose(@"beginningOfData %d",beginningOfData);
}
}
полезная нагрузка - это массив байтов, взятых из nsdata из возврата сокета