【问题标题】:Is it possible to obtain the local IP address from a preprocessor DEFINE in Objective-C?是否可以从 Objective-C 中的预处理器 DEFINE 获取本地 IP 地址?
【发布时间】:2011-12-18 04:40:40
【问题描述】:

这可能是一个很长的镜头,但问一下也无妨...
你认为在xcode下用Objective-C构建iOS时可以获取构建主机的IP地址吗?
如果可能的话,它对我的​​测试很有用。
例如:

NSString* backendUrl = [NSString stringWithFormat:@"http://%@:5000/", HOST_IP];

我希望HOST_IP(如果有类似的话)是这样的,但当然会在构建时自动控制以保持正确的 IP:

#define HOST_IP @"172.76.77.5"

【问题讨论】:

    标签: objective-c xcode c-preprocessor


    【解决方案1】:

    没有方便的解决方案,但这里有一些可供考虑的选项。

    1. 在您的#define 中,输入您计算机的主机名(如果它在 LAN 上) - http://mylaptop:5000/ 或者干脆注册一个免费域名@http://www.no-ip.com/

    2. 1234563 #定义。 然后您可以将脚本添加为预构建阶段,或者在您知道 IP 地址已更改时运行脚本。虽然我承认这有点骇人听闻。

    【讨论】:

    • 你的号码。 2将是我的解决方案。有点老套,但也不是很糟糕。
    【解决方案2】:

    不确定这是否有效,但也许你可以做类似的事情

    静态 NSString *HOST_IP;
    
    -(id)初始化
    {
       if (self = [超级初始化])
       {
           HOST_IP = // 你的代码
        }
        回归自我;
    }
    
    

    这样的事情可能会奏效,但我不确定当你发布课程时会发生什么。

    【讨论】:

    • 抱歉,这行不通。如果正在运行的设备,您的方法将保留 IP 地址。但是我要的是构建服务器的 IP 地址(这也是我的调试后端服务器)
    猜你喜欢
    • 2011-07-31
    • 2011-04-04
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 2012-09-29
    相关资源
    最近更新 更多