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