Существует ли iPhone, эквивалентный из MAC_OS_X_VERSION_MIN_REQUIRED?

Это не нормальные атрибуты; это декларации пространства имен .

Это объявление: xmlns:cbnp-message="some_value" связывает пространство имен uri some_value с префиксом cbnp-message.

Это объявление: xmlns="some_value2" является пространством имен по умолчанию (поскольку uri не привязан к префиксу).

Что вы можете сделать в lxml - это использовать «nsmap» для отображения префиксов в uris. Для пространств имен по умолчанию префикс должен быть None.

Чтобы избежать исключения «Недопустимое имя тега», вам также потребуется использовать QName() для построения квалифицированного имени (которое представляет собой пространство имен uri и локальное имя в нотации Кларка (пример: [ 118])).

См. Здесь для получения дополнительной информации о пространствах имен в lxml.

См. Здесь (или ссылку на страницу Джеймса Кларка выше) для получения дополнительной информации о пространствах имен в целом.

Пример ...

from lxml import etree

nsmap = {None: "some_value2", "cbnp-message": "some_value"}

message = etree.Element(etree.QName(nsmap.get("cbnp-message"), "cbnp-message"), nsmap=nsmap)

etree.dump(message)

Вывод ...


8
задан Daniel Dickison 30 March 2009 в 14:21
поделиться

3 ответа

Если это имеет значение достойное обходное решение, если такой макрос не существует, должно создать 2 цели сборки, и в одном из них добавляют установку сборки GCC_PREPROCESSOR_DEFINITIONS со значением как IPHONE_OS_3. Затем в Вашем коде можно сделать:

#ifdef IPHONE_OS_3
    [foo thisMethodIsUnderNDA];
#else
    [foo oldSchoolMethod];
#endif
2
ответ дан 5 December 2019 в 10:05
поделиться

Существуют макросы препроцессора, которые определяются для каждой версии ОС. Например, если __IPHONE_OS_3_0 определяется, затем Вы создаете против 3,0 SDK (или возможно позже, я не уверен).

3
ответ дан 5 December 2019 в 10:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: