У меня есть строка product
:
NSString* product = models[[[peripheral identifier] UUIDString]];
, и в отладчике я могу напечатать:
po product
>>> X3
, и я могу проверить байты:
po [product dataUsingEncoding:NSUTF8StringEncoding]
>>> <5833>
Я также могу проверить байты буквенной строки @"X3"
:
po [@"X3" dataUsingEncoding:NSUTF8StringEncoding]
>>> <5833>
И я получаю тот же вывод.Однако, когда я пытаюсь сделать:
[product isEqualToString:@"X3"]
>>> <nil>
, я получаю nil
.Какого черта!?Я могу понять, когда есть скрытый символ или что-то еще, но когда байты оценивают одно и то же, тогда я сбит с толку.
Я могу даже сделать:
NSData *d = [product dataUsingEncoding:NSUTF8StringEncoding];
NSData *d2 = [@"X3" dataUsingEncoding:NSUTF8StringEncoding];
po [d isEqualToData:d2]
>>> YES