2016-02-11 4 views
1

Я использую библиотеку C++ из уровня Objective-C. Я хочу иметь доступ к этому пути или, по крайней мере, к его идентификационной строке, непосредственно в библиотеке C++.Получить путь к каталогу iPhone в C++

(Примечание: В производстве мы имеем возможность передать идентификатор из слоя Objective-C, но это, чтобы попытаться получить путь прямо в CI)

Например, если я получаю NSDocumentDirectory путь в Objective-C, путь легко:

/var/mobile/Containers/Data/Application/93C788E8-3F76-4DD2-BC5F-7980BE9970C7/Documents 

Я мог бы вырезать GUID (93C788E8-3F76-4DD2-BC5F-7980BE9970C7) с этого пути и пройти его, но мне нужно, чтобы быть в состоянии произвести его чисто в C++. Наш CI запускает наш тестовый пакет непосредственно на устройстве вместо симулятора. Я знаю, что это в основном команда unix, но я потратил свое утреннее snooping вокруг, и подошел пустой. Любые идеи, где искать?

+0

Я не реально получить соотношение между вашей программой и этим путем ... или то, что ваш вопрос. Вы просто хотите узнать, как извлечь Uuid/GUID из пути на C++? –

+0

Да @SimonKraemer, это именно то, что я хотел бы сделать, поскольку остальная часть пути является стандартной. – dokun1

+0

И пояснить, я не спрашиваю, как разбирать строку в C++ :) Мне нужно получить GUID из системы, не покидая кодовой базы C++. – dokun1

ответ

2

Вы можете использовать getenv("HOME");, чтобы получить путь к каталогу вашего приложения.

Учитывая ваш пример, это должно вернуть /var/mobile/Containers/Data/Application/93C788E8-3F76-4DD2-BC5F-7980BE9970C7/.

Затем вы можете извлечь GUID с этого пути.

Идея этого была взята из https://stackoverflow.com/a/17284816/4181011