NSHost“currentHost”无法识别

时间:2011-06-30 13:17:22

标签: iphone objective-c nshost

我想用这段代码知道我的ip,但是我得到了2个警告,我现在无法修复。我还发现了这篇文章:Accessing IP Address with NSHost

但我只是想了解为什么这个代码不起作用,如果有人有答案?

这是我的代码:

      -(NSString*)getAddress {
            NSString *iphone_ip = [NSString initWithString:@"127.0.0.1"];
            NSHost* myhost =[NSHost currentHost];
            if (myhost)
            {
                NSString *ad = [myhost address];
                if (ad)
                    strcpy(iphone_ip,[ad cStringUsingEncoding: NSISOLatin1StringEncoding]);
            }
            return [NSString stringWithFormat:@"%s",iphone_ip]; 
        }

第一个警告是:

  

NSHost * myhost = [NSHost currentHost]

,说currentHost无法识别。 第二个是

  

NSString * ad = [myhost address];

“不兼容的obj-c类型初始化'struct NSData ”,预期'struct NString “”

我可以想象,当第一个警告解决后,第二个警告可能会消失......

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

正如您在此处的文档中所看到的,它已在OS X库中记录。

NSHost

它实际上是iPhone上的私有API。您仍然可以使用它,但是您会收到编译器警告。

如果您需要找到您的IPAddress,您可以使用此URL使用NSURLRequest和NSURLConnection:WhatIsMyIP API

该页面专门供程序员使用。他们要求你每300秒不超过一次。您可以在此处找到常见问题解答:FAQ