Целевые атрибуты Sharpie
Часто вы найдете, что привязки, созданные Objective Sharpie, будут аннотированы атрибутом [Verify]
. Эти атрибуты указывают на то, что вы должны убедиться , что Objective Sharpie сделал правильное действие, сравнивая привязку с исходным объявлением C/Objective-C (которое будет предоставлено в комментарии выше ограничивающего объявления).
Проверка рекомендуется для всех ограничивающих объявлений, но, скорее всего, требуется для объявлений, аннотированных атрибутом[Verify]
. Это связано с тем, что во многих ситуациях в исходном исходном коде недостаточно метаданных, чтобы определить, как лучше всего создать привязку. Возможно, вам потребуется ссылаться на документацию или комментарии кода в файлах заголовков, чтобы принять оптимальное решение о привязке.
Убедившись, что привязка правильна или исправлена, [Verify]
удалите атрибут из привязки.
Внимание
[Verify]
атрибуты намеренно вызывают ошибки компиляции C#, чтобы принудительно проверить привязку. При проверке (и возможно исправлении) кода необходимо удалить [Verify]
атрибут.
Справка по подсказкам
Аргумент указания, предоставленный атрибуту, можно перекрестно ссылаться на документацию ниже. Документация по любым созданным [Verify]
атрибутам будет предоставлена в консоли, а также после завершения привязки.
[Verify] Подсказка |
Description |
---|---|
InferredFromPreceedingTypedef | Имя этого объявления было выведено общим соглашением из непосредственно предыдущего typedef в исходном исходном коде. Убедитесь, что указанное имя правильно, так как это соглашение неоднозначно. |
ConstantsInterfaceAssociation | Нет способа обмана определить, с каким Objective-C интерфейсом может быть связано объявление экстерна переменной. Экземпляры этих элементов привязаны как [Field] свойства в частичном интерфейсе к конкретному интерфейсу для создания более интуитивно понятного API, возможно, полностью устраняя интерфейс "Константы". |
MethodToProperty | Метод Objective-C был привязан как свойство C# из-за соглашения, например принятия параметров и возврата значения (непустый возврат). Часто такие методы должны быть привязаны как свойства к поверхности более удобного API, но иногда могут возникать ложные срабатывания, и привязка должна быть фактически методом. |
StronglyTypedNSArray | Родной NSArray* был привязан как NSObject[] . Можно было бы более строго ввести массив в привязке на основе ожиданий, заданных с помощью документации ПО API (например, примечания в файле заголовка) или путем изучения содержимого массива с помощью тестирования. Например, объект NSArray* со только экземпляром NSNumber* должен быть привязан NSNumber[] вместо NSObject[] него. |
Вы также можете быстро получить документацию по подсказке sharpie verify-docs
с помощью средства, например:
sharpie verify-docs InferredFromPreceedingTypedef