2011-10-22 14 views
13

Realmente no entiendo lo que está pasando aquí.NSData isEqualtoData

Tengo una función que obtiene los primeros 3 bytes de un objeto NSData, receivedStream, y ponerlos en otro objeto NSData, temp, a través de una matriz char. Luego, comparando eso con un objeto NSData creado a partir de un búfer de matriz char. Ambos nuevos objetos NSData se crean y tienen los contenidos correctos. Sin embargo, cuando isEqualtoData se llama, me sale un error:

[NSConcreteData isEqualtoData:]: unrecognized selector sent to instance (instance refers to tmp2)

también consigo la advertencia

Instance method '-isEqualtoData:' not found (return type defaults to 'id')

la que no entiendo, ya que es claro que este es un método válido en la documentación. ¿Debo declarar NSData.h en algún lugar?

-(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; 
} 
+0

Solo edite la publicación, hombre. Hice una copia y pega de su código y me llevó 10 minutos averiguar qué estaba mal xD – falkon21

Respuesta

29

El método se llama isEqualToData:. Tenga en cuenta que la mayúscula T - Objective-C distingue entre mayúsculas y minúsculas, como la mayoría de los lenguajes de programación.

+0

Sabía que iba a ser algo así de estúpido. Gracias. Eso me enseñará a copiar el método directamente de los documentos. –

+8

O use el autocompletar. :) – Ciryon