Можно ли получить локальный IP-адрес от препроцессора DEFINE в Objective-C? - PullRequest
7 голосов
/ 30 октября 2011

Это, вероятно, длинный выстрел, но не мешает спросить ...
Как вы думаете, возможно ли получить IP-адрес хоста сборки при сборке iOS в Objective-C под xcode?
Было бы полезно для моего тестирования, если бы это было возможно.
Например:

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

Где бы я ожидал, что HOST_IP (если бы было что-то подобное) было бы примерно таким, ноконечно, автоматически контролируется во время сборки, чтобы держать правильный IP:

#define HOST_IP @"172.76.77.5"

Ответы [ 2 ]

3 голосов
/ 30 октября 2011

Нет удобного решения, но вот несколько вариантов для рассмотрения.

  1. В поле #define введите имя хоста вашего компьютера (если оно находится в локальной сети) - http://mylaptop:5000/ или просто зарегистрируйтесь на свободном домене @ http://www.no -ip.com /

  2. Если необходимо специально иметь макрос #define, содержащий вашIP-адрес, вы можете просто написать небольшой bash-скрипт, который обновит определенный ip в вашем файле .m / .cpp / .h или что-то еще, содержащее этот #define.затем вы можете добавить сценарий в качестве фазы предварительной сборки или просто запустить сценарий, когда вы знаете, что IP-адрес изменился.хотя я признаю, что это довольно хакерски.

0 голосов
/ 30 октября 2011

Не уверен, что это работает, но, возможно, вы могли бы сделать что-то вроде

static NSString *HOST_IP;

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

Что-то подобное может сработать, но я не уверен, что произойдет, когда вы выпустите класс.

...