Существует ли способ заставить xsd.exe генерировать классы с “внутренним” объемом?

Marc Charbonneau записал:

Имеют в виду, что "%d" будет только работать над 32 битами. Как только Вы начинаете использовать NSInteger для совместимости, если Вы когда-нибудь компилируете для платформы на 64 бита, необходимо использовать "%ld" в качестве спецификатора формата.

Интересный, спасибо за подсказку, я использовал "%d" с моим NSInteger с!

документация SDK также рекомендует бросить NSInteger к long в этом случае (для соответствия "%ld"), например:

NSInteger i = 42;
label.text = [NSString stringWithFormat:@"%ld", (long)i];

Источник: Строковое Руководство по программированию для Какао - Спецификаторы Формата строки (Требует регистрации разработчика iPhone)

8
задан Mark Wright 16 September 2009 в 21:18
поделиться

1 ответ

Это очень короткий ответ, который можно расширить до книги.

Нет, xsd.exe не может делать то, что вы хотите.

Однако вы можете использовать описанные методы в этой статье для доступа к классу XmlCodeExporter , который является частью платформы, генерирующей код из схем XML. Как только это будет сделано, у вас будет копия CodeDOM для сгенерированного кода в памяти. вы можете перебирать все классы в пространстве имен и устанавливать их как внутренние.

Возможно, для удаления этого предупреждения потребуется больше усилий, чем вам хотелось бы.

Другой способ удалить предупреждение - создать код в сборке, для которой отключены XML-документы (в конце концов, кому нужны документы для сгенерированного кода?)

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

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