2010-02-24 4 views
7

Cette question a déjà été posée ici: NSNetservice IP address[adresses Converting NSNetService] IP chaîne d'adresse

et ici: iPhone: Bonjour NSNetService IP address and port

Je l'ai utilisé deux personnes pour arriver là où je suis maintenant. Mon problème est la méthode suivante je ne fonctionne pas tout à fait:

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

Cela donne une erreur de génération en disant à la fois « pointeur déréférencement de type incomplet » et « déclaration implicite de la fonction« inet_ntoa » sur la même ligne.

J'ai vérifié et je ne pense pas qu'il me manque un certain type de cadre pour obtenir inet_ntoa pour fonctionner. Une idée de ce que je fais mal? Merci.

+1

En fait, inet_ntoa est déprécié, utilisez plutôt inet_ntop! – krasnyk

Répondre

18

Si vous obtenez déclaration implicite de inet_ntoa, vous avez probablement besoin

#include <arpa/inet.h> 

(Vous pouvez l'homme inet_ntoa pour obtenir cette information et en savoir plus sur cette fonction)

+0

Cela a fonctionné parfaitement. Merci beaucoup pour la réponse rapide! – mjdth

+0

Avec tha vous m'avez aidé! J'étais comme ce qui se passe ... –

Questions connexes