Observe que essa mensagem de erro é de nível bastante baixo e, por isso, surge por diferentes motivos em diferentes cenários. Se você tiver um cenário que não é mencionado em uma das respostas abaixo, considere adicionar sua situação também. Talvez essa seja uma resposta central para várias situações que geram essa mensagem de erro.
Editar Nov 10, 2015 Observe também que marquei minha própria resposta como a resposta, mas isso foi antes de qualquer outra pessoa ter postado. Eu acho que nenhum deve realmente ser marcado como a resposta, porque, como vimos agora abaixo ... esse erro não tem apenas uma resposta porque é um nível muito baixo.
Estou correndo
- Simulador para iOS 9.0
- XCode 7.0
Tudo estava funcionando bem ontem.
Hoje, depois de muito trabalho em assuntos relacionados à rotação, comecei a receber esse erro na saída do console ao executar o aplicativo no Simulador e girá-lo.
_BSMachError: capacidade inválida (os / kern) (20)
_BSMachError: nome inválido (os / kern) (15)
- Limpei minha pasta de construção, - Limpei a pasta de dados derivados, - Redefinii o simulador.
Eu estava trabalhando com
UIViewController viewWillLayoutSubviews
UIViewController viewWillTransitionToSize:...
Eu também estava verificando várias configurações de 'Desenho' no Inspetor de atributos no IB.
Também criei uma categoria de utilitário no UIView, onde criei vários métodos que criam CGRect
e me ajudam a atribuir quadros a visualizações.
fonte
MyFoodTracker
: PRespostas:
Com base no https://forums.developer.apple.com/thread/15683 :
Altere " Região de desenvolvimento nativo da localização "
info.plist
para Estados Unidos em vez deen
.Atualizado: em seguida, você pode reverter essas alterações novamente.
fonte
ja
, nãoen
. O que devo fazer? Defina comoJapan
?Também encontrei
_BSMachError
erros no console enquanto fazia uma ligação direta no aplicativo Configurações no iOS 9UIAlertController
. Adispatch_async
resolveu meu problema:fonte
Ok, eu ainda não o localizei completamente, mas isso fará você 99% do caminho até lá. Estou usando um controle de mapa de terceiros da ESRI, e algo sobre isso não gosta de nenhuma dessas configurações de desenho no Inspetor de atributos. Eu não tentei cada configuração individualmente para ver qual é, mas quando desliguei todas (na caixa vermelha) tudo funcionou como um encanto e parei de receber a mensagem de erro acima no console. Se e quando tiver tempo para definir exatamente a configuração ou combinação de configurações, atualizarei a resposta.
fonte
É uma loucura, mas para mim a solução foi apenas remover todos os pontos de interrupção no arquivo em que ocorreu o erro.
Quanto à causa? Acho que pressionei acidentalmente uma tecla de atalho para criar um ponto de interrupção na linha atual. Como isso não foi intencional, pressionei a mesma tecla de atalho novamente para excluí-la.
Oh meu querido XCode ...
fonte
Eu estava recebendo os mesmos erros ...
Eu estava chamando openURL () de um
UIAlertAction
Adiando a execução do bloco até o próximo ciclo de execução corrigi-lo ...
fonte
Eu estava recebendo o seguinte ao fornecer novos dados:
O erro ocorreu quando um botão foi usado para fornecer novos dados. Um
NSTimer
foi usado para atualizar e atualizar dados ao retornar de umaperformSegueWithIdentifier
ação. O cronômetro estava sendo ativado e depois invalidado imediatamente após o uso no horário de retorno. OMSMachError
parado quando o temporizador foi removido e -(void)viewWillAppear:(BOOL)animated
e(void)viewDidAppear:(BOOL)animated
foram utilizados para realizar a mesma função. Este erro começou com a atualização para o Xcode 7.fonte
Eu resolvi esse problema alterando o valor da
Localization native development region
chave paraUnited Kingdom
[ou qualquer região específica] do valor padrãoen
presente noinfo.plist
seu projeto.Project Navigator
info.plist
arquivo presente na pasta ProjectNameTests.Localization native development region key
para qualquer região específica, por exemplo. Reino Unidofonte
BSMachError
. Mudar de região paraUnited States
o erro desapareceu. Mais um mistério inexplicável do Xcode.Também encontrei o mesmo problema em uma NSOperation em execução em um thread em segundo plano e ainda estava recebendo esse erro porque um UIAlertController ainda estava se removendo enquanto outra transação da interface do usuário estava tentando ocorrer. A modificação do meu código para isso corrigiu o problema.
Muitas pessoas não sabem sobre adiar - Permite que o escopo atual seja concluído e depois seja executado. Meio arrumado.
fonte
Eu enfrentei o mesmo erro de capacidade inválida (20) e nome inválido (15). Tentei as soluções mencionadas por outros, como:
Mas nenhuma dessas soluções resolveu meu problema. Na verdade, eu estava tentando compartilhar algum documento, mas a geração do documento levaria algum tempo e queria exibir um UIActivityIndicatorView para o usuário até que o documento fosse carregado.
A solução para o meu erro foi:
fonte
Alterar a sequência de localização de en para Estados Unidos corrigiu isso para mim. No entanto, certifique-se de limpar depois de alterar o Info.plist. Percebi que as atualizações não funcionam quando você apenas cria depois de fazer alterações significativas.
fonte
No meu caso, era Little Snitch, estava bloqueando URLs automaticamente.
fonte
Eu poderia reproduzir o erro para mim: Se eu fizer alterações em uma das Visualizações em uma Visualização que já estou fechando (popViewControllerAnimated), recebo o erro.
Estou tendo uma ação UINavigationButton que cria uma tarefa assíncrona (POSTRequest). Antes de executar esta solicitação, defino o customView desse botão como um indicador de progresso. Ao voltar da chamada assíncrona, despacho para o encadeamento principal e redefino o customView desse botão. Depois disso, estou fechando a exibição (popViewControllerAnimated).
Este é o código CORRETO no qual o erro não aparece:
O que causou o erro foi alternar linhas: fechando a visualização e, em seguida, configurando o customView como nulo:
fonte
Este erro começou a aparecer depois que adicionei alguns observadores:
O problema desapareceu quando especifiquei o nome da classe em vez de
self
:fonte
Eu tive o mesmo erro e nenhuma das opções acima se aplica ao meu problema. O problema apareceu quando registrei meu controlador de vista como observador de uma alteração na orientação do dispositivo, para que as vistas pudessem ser redimensionadas e os desenhos na vista pudessem ser feitos de acordo com o novo tamanho da vista.
Eu tenho uma saída de um viewGraph que era uma subclasse do UIView na qual desenhei alguns gráficos. No modo paisagem, o tamanho do viewGraph é maior do que no modo retrato. Portanto, quando o dispositivo altera sua orientação, o speedGraph precisa ser redesenhado.
O problema foi que adicionei várias subvisões à visualização speedGraph, que continham gráficos. Essas subvisões precisavam ser dispostas novamente na visualização speedGraph e depois redesenhadas. Depois que o dispositivo mudou sua orientação, chamei viewDidAppear novamente para tornar a visualização speedGraph e todas as suas subvisões criadas de novo e redesenhar. Chamar setNeedsDisplay para speedGraph não funciona com alterações de orientação e subvisões em uma exibição.
O que fiz de errado que causou o erro? Em viewDidAppear, chamo um método que faz alguns cálculos e adiciona as subvisões à visualização speedGraph. O problema era que essas subvisões foram criadas no método e adicionadas à visualização speedGraph nesse método. Depois de sair do método, as referências a essas sub-visões são, obviamente, excluídas, mas as sub-visões na visualização speedGraph permanecem, pois foram adicionadas. Quando o dispositivo muda, as subvisões são criadas novamente e adicionadas à visualização speedGraph, que já possui essas subvisões, mas não consegue mais encontrar as referências a essas subvisões. A matriz de subviews da visualização speedGraph fica mais e mais com (eu acho) subviews pendentes.
Resolvi o problema definindo as subvisões que serão adicionadas à visualização speedGraph como uma propriedade de classe e, em seguida, fiz o que precisava ser feito com as visualizações dentro deste método. Com essa mudança, o problema se foi.
fonte
Como podemos postar todas as situações retornando o mesmo erro aqui, senti-me à vontade para postar o meu :). Recebi o erro quando alterei as configurações de privacidade em segundo plano. Meu aplicativo abriu o aplicativo de configurações para que o usuário possa conceder permissão à sua biblioteca de fotos. Quando a opção de permissão é definida, o aplicativo trava com o erro mencionado:
Parece ser uma reinicialização forçada do seu aplicativo pelo sistema operacional, porque o usuário alterou o que o seu aplicativo pode acessar. Então, no meu caso, é uma ação do sistema operacional que causou o erro.
fonte
Recebi a mesma mensagem de erro, porque eu sou
assign
umaobject
propriedade@property (assign, nonatomic) NSNumber *aVariable;
, corrigida pela alteração parastrong
.fonte
Pelo que vale a pena - parece que muitas situações geram esse erro. No meu caso, eu havia postado um alerta quando o usuário estava descartando um formulário de entrada de dados e os dados estavam no formulário. Consegui eliminar o erro renunciando programaticamente o primeiro respondedor de todos os campos aplicáveis antes de desenrolar o controlador de exibição.
fonte
prepareForSegue()
ele não é chamado e não sei onde renunciar ao primeiro respondedor.Vi isso ao pressionar o
Home
botão enquanto umUIAlertController
era exibido, que foi descartado quando o aplicativo foi reiniciado. Eu adicionei código para descartar oUIAlertController
emappDelegate
:e a mensagem de erro desapareceu.
fonte
Eu tive esse erro ao descartar uma popover via delegate. No delegateMethod, eu acionei algumas coisas da GUI. Colocando o GUI-Stuff na conclusãoO bloco de unlockViewControllerAnimated corrigiu.
fonte
Eu sou um novato nisso, então leve isso para o que vale a pena.
O que corrigi isso para mim foi alterar as Métricas simuladas> Tamanho> para Tela cheia do iPad. Todos os meus pontos de vista, EXCETO o que gerou esse erro, foram configurados para iPad em tela cheia. Quando mudei, o erro desapareceu ...
fonte
A razão pela qual alguns desenvolvedores não obtiveram o erro retornou depois de mudar de "Estados Unidos" para "en" (ou) outra região, é que há discrepância entre as visualizações "Lista de propriedades" e "Código-fonte". Provavelmente é um bug do Xcode. Sempre que houver incompatibilidade entre essas duas visualizações, esse erro será gerado, seja ele "en" ou "inglês". Se você alterou para "en" ou "Estados Unidos" para que ambos os modos de exibição sejam iguais, o problema será corrigido.
fonte
Eu recebi esse erro de:
etc
criando um novo prompt de dicionário e:
e então usei o prompt nas minhas chamadas de alerta. Isso resolveu o problema.
Portanto, parece que é uma questão de tempo.
fonte
com o Xcode 8.1 e iOs 10 eu também enfrentei
_BSMachError: capacidade inválida (os / kern) (20)
_BSMachError: nome inválido (os / kern) (15)
tentando substituir UiTraiCollection var para alterar em tempo de execução as classes de tamanho do iPad para ter dois layouts de interface diferentes em Portraid e Landscape. Funcionou sem travamentos, mas gerou nossos erros.
Este era o código "maliciuos":
Os erros foram usados
override func viewWillTransition
como alternativa para detectar a rotação da interface.Espero que isso seja útil para alguém
fonte
No meu caso, a causa do erro ocorreu devido ao redimensionamento. Construído em IB. Qualquer coisa que possa alterar o tamanho de um campo de texto ou similar, por exemplo, alterar o comprimento da linha, pode levar a esse erro. No meu caso, eu simplesmente precisei ajustar o tamanho do campo de texto para cobrir todas as possibilidades, para que não fosse necessário redimensionar a caixa e entrar em conflito com outra coisa.
fonte