NSData isEqualtoData

Ste*_*v_k 13 objective-c nsdata

我真的不明白这里发生了什么.

我有一个函数从NSData对象receiveStream获取前3个字节,并通过char数组将它们放入另一个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;
}
Run Code Online (Sandbox Code Playgroud)

omz*_*omz 31

该方法被调用isEqualToData:.注意大写字母T-Objective-C与大多数编程语言一样区分大小写.

  • 或者使用自动完成.:) (9认同)