2010-02-24 12 views
7

Esta pregunta ya se le pidió aquí: NSNetservice IP address[NSNetservice] a IP cadena de dirección

y aquí: iPhone: Bonjour NSNetService IP address and port

que he usado ambas cosas para llegar a donde estoy ahora. Mi problema es el siguiente método que tengo no funciona bastante:

- (NSString *)getStringFromAddressData:(NSData *)dataIn { 
    struct sockaddr_in *socketAddress = nil; 
    NSString   *ipString = nil; 

    socketAddress = (struct sockaddr_in *)[dataIn bytes]; 
    ipString = [NSString stringWithFormat: @"%s", 
       inet_ntoa(socketAddress->sin_addr)]; ///problem here 
    return ipString; 
} 

Esto da un error de generación que dice tanto "Desreferenciar puntero al tipo incompleto" y " 'inet_ntoa' declaración implícita de la función" en la misma línea.

Lo he comprobado y no creo que me falta algún tipo de marco para que inet_ntoa funcione. ¿Alguna idea de lo que estoy haciendo mal? Gracias.

+1

Acctually inet_ntoa se deprecia, use inet_ntop en su lugar! – krasnyk

Respuesta

18

Si usted está recibiendo declaración implícita de la inet_ntoa, es probable que tenga

#include <arpa/inet.h> 

(Puede el hombre inet_ntoa para obtener esta información y leer más sobre esa función)

+0

Eso funcionó perfectamente. ¡Muchas gracias por la respuesta rápida! – mjdth

+0

Con tha include me ayudaste! Yo estaba como qué demonios está pasando ... –

Cuestiones relacionadas