Подтвердить что ты не робот

NSData isEqualtoData

Я действительно не понимаю, что происходит здесь.

У меня есть функция, которая получает первые 3 байта из объекта NSData, receivedStream и помещает их в другой объект NSData temp через массив char. Затем сравниваем это с объектом NSData, созданным из буфера массива char. Оба новых объекта NSData создаются и имеют правильное содержимое. Однако, когда вызывается isEqualtoData, я получаю сообщение об ошибке:

[NSConcreteData isEqualtoData:]: непризнанный селектор, отправленный экземпляру (экземпляр ссылается на tmp2)

Я также получаю предупреждение

Метод экземпляра '-isEqualtoData:' не найден (тип возврата по умолчанию равен 'id')

который я не понимаю, поскольку это ясно, что это действительный метод в документах. Мне нужно объявить NSData.h где-нибудь?

-(BOOL)checkHeader{
    char tmp[3];
    [receivedStream getBytes:&tmp length:3];
    NSData *temp = [NSData dataWithBytes:tmp length:3];
    NSData *tmp2 = [NSData dataWithBytes:header length:3];
    BOOL test = [tmp2 isEqualtoData:temp];
    return test;
}
4b9b3361

Ответ 1

Метод называется isEqualToData:. Обратите внимание, что столица T - Objective-C чувствительна к регистру, как и большинство языков программирования.