1

このコードを使用して自分のIPを知りたいのですが、今のところ修正できない2つの警告が表示されます。私もこの投稿を見つけました:NSHostを使用したIPアドレスへのアクセス

しかし、誰かが答えを持っている場合、なぜこのコードが機能しないのかを理解したかっただけですか?

これが私のコードです:

      -(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が認識されないと言っています。2つ目はオンです

NSString * ad=[myhostアドレス];

"互換性のないobj-cタイプを初期化'structNSData "、期待される' struct NString ""

最初の警告が解決されると、2番目の警告が消える可能性があると想像できます...

ご協力いただきありがとうございます

ポール

4

1 に答える 1

2

ここのドキュメントからわかるように、OSXライブラリの下にドキュメント化されています。

NSHost

これは実際にはiPhoneのプライベートAPIです。引き続き使用できるはずですが、コンパイラの警告が表示されます。

IPアドレスを確認する必要がある場合は、次のURLを使用してNSURLRequestとNSURLConnectionを使用できます:WhatIsMyIP API

そのページは、特にプログラマーが使用するためにあります。300秒に1回だけpingするように求められます。ここでFAQを見つけることができます:FAQ

于 2011-06-30T13:24:31.940 に答える