是否可以从Objective-C中的预处理器DEFINE获取本地IP地址?

时间:2011-10-30 12:24:41

标签: objective-c xcode c-preprocessor

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

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

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

#define HOST_IP @"172.76.77.5"

2 个答案:

答案 0 :(得分:3)

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

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

  2. 如果需要专门有一个包含你的IP地址的#define宏,你可以简单地编写一个小的bash脚本来更新你.m / .cpp / .h文件中定义的ip或者任何保存它的内容#限定。 然后您可以将脚本添加为预构建阶段,或者在您知道IP地址已更改时运行脚本。虽然我承认它有点像黑客。

答案 1 :(得分:0)

不确定这是否有效,但也许您可以执行类似

的操作
static NSString *HOST_IP;

-(id)init
{
   if (self = [super init])
   {
       HOST_IP = // Your code
    }
    return self;
}

这样的事情可能有用,但我不确定当你上课时会发生什么。