NSData isEqualtoData - PullRequest
       4

NSData isEqualtoData

13 голосов
/ 23 октября 2011

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

У меня есть функция, которая получает первые 3 байта от объекта NSData selectedStream и помещает их в другой объект NSData, temp, через массив char. Затем сравнивая это с объектом NSData, созданным из буфера массива символов. Оба новых объекта 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;
}

1 Ответ

31 голосов
/ 23 октября 2011

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

...