/ / Incluir cabeçalho não modular ao incluir estrutura de terceiros no Objetivo C - objetivo-c, incluir, arquivos de cabeçalho

Inclusão de cabeçalho não modular ao incluir estrutura de terceiros no Objetivo C - objetivo-c, incluir, arquivos de cabeçalho

Eu preciso expor um método no meu arquivo de cabeçalho para aceitar um parâmetro de um tipo que vem de uma estrutura de terceiros. O stub do método fica assim:

- (void) onComplete:(RETURN_CODE (^)(BOOL isSuccess, NSData* tags))onComplete;

RETURN_CODE é um enum de typedef na estrutura de terceiros, mas não é a definição típica de enum. É assim:

typedef enum {
RETURN_CODE_DO_SUCCESS = 0,
RETURN_CODE_ERR_DISCONNECT = 0xFF01,
RETURN_CODE_ERR_CMD_RESPONSE = 0xFF02,
// continued...
}

Quando tento importá-lo no meu arquivo de cabeçalho, recebo o erro "Incluir cabeçalho não modular dentro do módulo de estrutura"

Eu já resolvi isso antes de usar o protocolo eantes, mas não tenho certeza de como contornar isso para o tipo RETURN_CODE. Já tenho a opção "Permitir inclusões não modulares" definida como Sim. Tanto minha estrutura quanto a estrutura de terceiros estão incluídas em um cabeçalho de ponte em meu projeto rápido.

A estrutura da minha estrutura é tal que A.h importa C.h, A.m importa B.h e B.h importa C.h. Eu não acho que isso deva ser um problema?

Como é uma estrutura de terceiros que eu estouao importar, não tenho certeza se posso alterar a associação de destino. Ele já está incluído na lista Vincular binário com bibliotecas. Para o lulz, eu o arrastei e soltei na seção Cabeçalhos públicos, mas isso não ajudou.

Tentei criar um arquivo de mapa de módulo, mas isso também não mudou nada. Não tenho certeza se o criei corretamente, recebi o mesmo erro de antes, mesmo depois de remover o cabeçalho da ponte.

Respostas:

1 para resposta № 1

Opção 1: Vá para o arquivo de cabeçalho e mude para público.

Alterar arquivo de cabeçalho

Opção 2: Vá para Projeto> Configurações de compilação> Apple LLVM 9.0 - Idioma - Módulos> Todas as inclusões não modulares nos módulos da estrutura = SIM

Alterar configurações de compilação