Compartilhar via


Atributos de verificação do Objective Sharpie

Muitas vezes, você descobrirá que as associações produzidas pelo Objective Sharpie serão anotadas com o [Verify] atributo . Esses atributos indicam que você deve verificar se Objective Sharpie fez a coisa correta comparando a associação com a declaração C/Objective-C original (que será fornecida em um comentário acima da declaração associada).

A verificação é recomendada para todas as declarações associadas, mas provavelmente é necessária para declarações anotadas com o [Verify] atributo . Isso ocorre porque, em muitas situações, não há metadados suficientes no código-fonte nativo original para inferir como produzir melhor uma associação. Talvez seja necessário fazer referência à documentação ou comentários de código dentro dos arquivos de cabeçalho para tomar a melhor decisão de associação.

Depois de verificar se a associação está correta ou corrigi-la para estar correta, remova o [Verify] atributo da associação.

Importante

[Verify] os atributos causam intencionalmente erros de compilação em C# para que você seja forçado a verificar a associação. Você deve remover o [Verify] atributo quando tiver revisado (e possivelmente corrigido) o código.

Verificar referência de dicas

O argumento de dica fornecido ao atributo pode ser referenciado cruzadamente com a documentação abaixo. A documentação de todos os atributos produzidos [Verify] também será fornecida no console após a conclusão da associação.

[Verify] Dica Descrição
InferredFromPreceedingTypedef O nome dessa declaração foi inferido pela convenção comum do imediatamente anterior typedef no código-fonte nativo original. Verifique se o nome inferido está correto, pois essa convenção é ambígua.
ConstantsInterfaceAssociation Não há nenhuma maneira tola de determinar com qual Objective-C interface uma declaração de variável extern pode estar associada. As instâncias delas são associadas como [Field] propriedades em uma interface parcial em uma interface quase concreta para produzir uma API mais intuitiva, possivelmente eliminando completamente a interface 'Constantes'.
MethodToProperty Um Objective-C método foi associado como uma propriedade C# devido à convenção, como não usar parâmetros e retornar um valor (retorno não nulo). Geralmente, métodos como esses devem ser associados como propriedades para exibir uma API mais agradável, mas às vezes os falsos positivos podem ocorrer e a associação deve ser realmente um método.
StronglyTypedNSArray Um nativo NSArray* foi associado como NSObject[]. Pode ser possível digitar mais fortemente a matriz na associação com base nas expectativas definidas por meio da documentação da API (por exemplo, comentários no arquivo de cabeçalho) ou examinando o conteúdo da matriz por meio de testes. Por exemplo, um NSArray* contendo apenas instâncias NSNumber* pode ser associado como NSNumber[] em vez de NSObject[].

Você também pode receber rapidamente a documentação de uma dica usando a sharpie verify-docs ferramenta, por exemplo:

sharpie verify-docs InferredFromPreceedingTypedef