ios - welcome - xcode features




Nib carregado, mas a saída 'view' não foi definida (18)

Eu adicionei um novo arquivo nib ao meu projeto e tentei carregá-lo.

No entanto, quando clico no ícone da barra de ferramentas que deveria me levar para a exibição que criei, recebo uma NSInternalInconsistencyException com a mensagem:

Encerrando o aplicativo devido à exceção não-detectada 'NSInternalInconsistencyException', motivo: '- [UIViewController _loadViewFromNibNamed: bundle:] carregou a ponta "...", mas a saída de exibição não foi definida.'

Então eu abri meu arquivo de ponta, e vejo pela visão que não há tomadas de referência definidas. No entanto, eu tento clicar e arrastar o círculo para "nova saída de referência" para o proprietário do arquivo, mas não vai me deixar ... o que eu preciso fazer para obter a minha exibição para exibir?


Eu tinha enfrentado o mesmo problema enquanto acidentalmente excluía a referência xib e adicionei-o novamente.Eu apenas fixo, fazendo conexão entre o proprietário de arquivos e o view.Also certifique-se de que a classe personalizada do seu FilesOwner é o viewController esperado.


A identidade de exibição - Identidade de classe não foi definida. Depois de defini-lo para a turma apropriada, o problema foi resolvido.


Apenas passei mais de uma hora tentando descobrir por que minha propriedade view não está configurada em meu controlador de visualização ao iniciá-la a partir do bico. Lembre-se de chamar "[super initWithNibName ...]" dentro do initWithNibName do seu view controller.


Apenas tive o mesmo erro no meu projeto, mas diferente razão. No meu caso eu tive uma configuração do IBOutlet com o nome "View" na minha classe UITableViewController customizada. Eu sabia que "view" era especial porque é um membro da classe base, mas eu não achava que View (caso diferente) também fosse um problema. Eu acho que algumas áreas de cacau não são sensíveis a maiúsculas e minúsculas, e provavelmente carregar um xib é uma dessas áreas. Então, apenas renomei para DefaultView e tudo está bem agora.


Eu apenas consertei isso no meu. Projeto grande, dois arquivos. Um era "ReallyLargeNameView" e outro era "ReallyLargeNameViewController"

Com base na segunda resposta escolhida acima, decidi limpar minha construção. Nada, mas eu ainda era suspeito de XCode (como eu tenho duas classes idênticas, deveria abstraí-las, mas eh ...) Então, está funcionando, não é. Os nomes dos proprietários dos arquivos são tão copiados e colados, as tomadas são refeitas, o xCode é reiniciado, e ainda nada.

Então eu apago a classe nomeada similar (que é uma visão). Em breve, o novo erro "outlet dentro não ligado" literalmente foi "webView não key value" blah ... basicamente dizendo "Visual Studio é melhor". Enfim ... eu apago o arquivo com nome menor, e bam, funciona.

O XCode é confundido por arquivos com nomes semelhantes. E o projeto é grande o suficiente para precisar reiniciar um pouco, isso pode ser parte dele.

Gostaria de ter uma resposta mais técnica do que "o XCode está confuso", mas bem, o xCode fica muito confuso neste momento. Descontrolado da mesma maneira que eu ajudaria uma criancinha. Funciona agora :) Deve beneficiar outras pessoas se o acima não corrigir nada.

Lembre-se sempre de limpar suas construções (excluindo o simulador também)


Eu geralmente posso corrigi-lo, refazendo a conexão entre o proprietário do arquivo e a visão. Controle e arraste do dono do Arquivo para a sua Visualização (no IB) e selecione a visualização no menu pop-up.


Eu me deparei com algo muito semelhante hoje à noite, com uma subclasse Swift UIViewController. Neste caso, nenhuma das correções acima funcionou, mas reordenou um pouco o meu código. Net-net, tendo uma extensão para a subclasse, ocorre antes que a própria definição da subclasse no mesmo arquivo pareça confundir o XCode, apesar de compilar bem; a correção foi colocar as extensões após a definição da subclasse.

Eu postei os detalhes em uma resposta a essa pergunta semelhante .


Eu também tive o mesmo problema e o meu problema foi que eu adicionei uma outra Localização (Inglês) à aparo ViewControllers para que meu App com a Localização Alemã não conseguisse encontrar o bico com o Localization English !! Espero que isso ajude alguém!


Eu tive o mesmo problema, eu descobri e é por causa de eu ter assinalado " células estáticas " nas propriedades da exibição de tabela na opção de conteúdo . Trabalhou quando mudou para " Dynamic Prototypes ". A captura de tela está abaixo.


Eu tive o mesmo problema, mas uma solução diferente foi pedida. O problema neste caso foi a classe do proprietário do arquivo não estar conectado ao arquivo xib.


Eu tive um problema semelhante com o Xcode 9.3, e a configuração do "Módulo" sob o atributo "File Owner's" no módulo de projeto corrigiu isso para mim.


Meu problema com isso foi causado por ter uma ponta duplicada na pasta da classe que não tinha o conjunto de visualizações. O xcode parecia estar escolhendo um bico para uma compilação e o outro da próxima vez que eu criei o projeto. Apenas apagou o outro. Parece bom. Doh!


No meu caso, o inicializador designado - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil na classe ViewController *** foi implementado assim mesmo quando eu chamo outro inicializador para inicializar o objeto, o inicializador designado irá ser chamado .

Então, para resolver este problema, verifique se o - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil também é um bom caminho.


Para mim todas as coisas declaradas aqui https://.com/a/6395750/939501 eram verdade, mas ainda estava jogando erro, razão foi que eu criei uma classe View com o nome ABCView e depois excluí-lo mais tarde eu adicionei um controlador de visualização como ABCViewController então, de alguma forma, estava se referindo ao velho ABCView no novo controlador de visão, eu tive que deletar o ABCViewController e adicionar um novo nome diferente que resolveu o meu problema.

obrigado


Para qualquer pessoa que esteja usando um método xib para criar um UIView e tendo esse problema, você notará que não terá a saída "view" no menu do inspetor de conexões. Mas se você definir a classe personalizada File's Owners para um UIViewController e, em seguida, verá a saída "view", que você pode apenas conectar o CMND a uma saída para o CustomView.


Se você já tentou de tudo e ainda obtém esse erro, tente recriar o arquivo de classe a partir do zero, mas lembre-se de marcar a caixa de seleção "Também criar arquivo XIB". Isso ligará automaticamente alguns itens que não estão vinculados ao criar esses arquivos separadamente. Depois que isso é criado, você provavelmente pode cortar e colar tudo no novo XIB e ele deve funcionar bem.

Eu estou encontrando este problema especificamente com a criação de arquivos separadamente no Swift.


Vocês estão certos, mas como eu sou um recém-chegado, levei um tempo para descobrir todos os passos para fazer isso. Veja o que funcionou para mim:

  • Abra o arquivo XIB que causava problemas
  • Clique no ícone do proprietário do arquivo na barra esquerda (na parte superior, parece uma caixa com contorno amarelo)
  • Se você não vir a barra lateral direita, clique no terceiro ícone acima de "visualizar" na sua barra de ferramentas. Isso mostrará a barra lateral direita
  • Na barra lateral direita, clique na terceira aba - a que mais parece um jornal
  • Em "Classe Personalizada" na parte superior, certifique-se de que Classe seja o nome do ViewController que deve corresponder a essa visualização. Se não, digite

  • Na barra lateral direita, clique na última guia - a que se parece com um círculo com uma seta nela
  • Você deve ver "outlets" com "view" sob ele. Arraste o círculo ao lado dele até o ícone "ver" na barra esquerda (na parte inferior um, parece um quadrado branco com um contorno cinza grosso

  • Salve o xib e execute novamente

para mim aconteceu quando

  • Eu tenho uma classe ViewController (.mm / h) associada ao arquivo NIB,
  • UIView deste ViewController tem que ser carregado na outra visão como uma subvisualização,

  • nós vamos chamar algo assim

    -(void)initCheckView{
    
       CheckView *pCheckViewCtrl = [CheckView instance];
    
       pCheckView = [pCheckViewCtrl view];
    
       [[self view]addSubview:pCheckView];
    
       [pCheckViewCtrl performCheck];        
    
    }

Onde

+(CheckView *)instance{
    static CheckView *pCheckView = nil;
    static dispatch_once_t checkToken;

    dispatch_once(&checkToken, ^{
        pCheckView = [[CheckView alloc]initWithNibName:@"CheckView" bundle:nil];
        if ( pCheckView){
            [pCheckView initLocal];
            **[pCheckView loadView];**
        }
    });

    return pCheckView;

}

Aqui loadView estava faltando ,,, adicionando esta linha resolveu o meu problema.





xib