Należy pamiętać, że ten komunikat o błędzie jest dość niski, więc pojawia się z różnych powodów w różnych scenariuszach. Jeśli masz scenariusz, który nie jest wymieniony w żadnej z odpowiedzi poniżej, rozważ dodanie również swojej sytuacji, więc może to być centralna odpowiedź na różne sytuacje, które powodują ten komunikat o błędzie.
Edytuj 10 listopada 2015 r. Zauważ również, że oznaczyłem własną odpowiedź jako odpowiedź, ale to było zanim ktokolwiek inny opublikował. Myślę, że żadna nie powinna być oznaczona jako odpowiedź, ponieważ jak widzieliśmy poniżej ... ten błąd nie ma tylko jednej odpowiedzi, ponieważ jest tak niski.
biegnę
- Symulator iOS 9.0
- XCode 7.0
Wczoraj wszystko działało dobrze.
Dzisiaj, po wielu pracach nad rzeczami związanymi z rotacją, zacząłem otrzymywać ten błąd w wynikach mojej konsoli, gdy uruchamiam aplikację w symulatorze i obracam ją.
_BSMachError: (os / kern) nieprawidłowa zdolność (20)
_BSMachError: (os / kern) nieprawidłowa nazwa (15)
- wyczyściłem folder kompilacji, - wyczyściłem folder danych pochodnych, - zresetowałem symulator.
Pracowałem z
UIViewController viewWillLayoutSubviews
UIViewController viewWillTransitionToSize:...
Sprawdzałem też różne ustawienia „Rysowania” w Inspektorze atrybutów w IB.
Stworzyłem także kategorię narzędzi na UIView, gdzie stworzyłem kilka metod, które tworzą CGRect
i pomagają mi przypisywać ramki do widoków.
źródło
MyFoodTracker
: POdpowiedzi:
Na podstawie https://forums.developer.apple.com/thread/15683 :
Zmień „ Lokalizację natywnego regionu rozwoju ”
info.plist
na Stany Zjednoczone zamiasten
.Zaktualizowano: Następnie możesz cofnąć te zmiany.
źródło
ja
nieen
. Co powinienem zrobić? Ustawić toJapan
?Napotkałem również
_BSMachError
błędy konsoli podczas głębokiego linkowania do aplikacji Ustawienia na iOS 9 zUIAlertController
akcji.dispatch_async
Rozwiązać mój problem:źródło
Ok, nie przypiąłem tego do końca, ale to da ci 99% drogi. Używam kontrolki mapy innej firmy z ESRI i coś w niej nie odpowiada jednemu z tych ustawień rysowania w Inspektorze atrybutów. Nie próbowałem każdego ustawienia osobno, aby zobaczyć, które to ustawienie, ale kiedy je wszystkie wyłączyłem (w czerwonym polu), wszystko działało jak urok i przestałem otrzymywać powyższy komunikat o błędzie w konsoli. Jeśli i kiedy zdążę, aby ustalić dokładne ustawienie lub kombinację ustawień, zaktualizuję odpowiedź.
źródło
To szalone, ale dla mnie rozwiązaniem było po prostu usunięcie wszystkich punktów przerwania w pliku, w którym wystąpił błąd.
Co do przyczyny? Myślę, że przypadkowo nacisnąłem klawisz skrótu, aby utworzyć punkt przerwania w bieżącej linii. Ponieważ było to niezamierzone, ponownie nacisnąłem ten sam klawisz skrótu, aby go usunąć.
O mój drogi XCode ...
źródło
Otrzymywałem te same błędy ...
Dzwoniłem do openURL () z
UIAlertAction
Odroczenie wykonania bloku do następnej pętli uruchamiania naprawiło to ...
źródło
Podczas dostarczania nowych danych otrzymywałem następujące informacje:
Wystąpił błąd, gdy do podania nowych danych użyto przycisku. An
NSTimer
służył do odświeżania i aktualizowania danych po powrocie zperformSegueWithIdentifier
akcji. Timer był aktywowany, a następnie unieważniany natychmiast po użyciu w czasie powrotu.MSMachError
Zatrzymany, gdy zegar usunięto i -(void)viewWillAppear:(BOOL)animated
i(void)viewDidAppear:(BOOL)animated
były wykorzystywane do wykonania tej samej funkcji. Ten błąd zaczął się od aktualizacji do Xcode 7.źródło
Naprawiono ten problem, zmieniając wartość
Localization native development region
klucza naUnited Kingdom
[lub dowolny określony region] z domyślnej wartościen
obecnej winfo.plist
twoim projekcie.Project Navigator
info.plist
plik obecny w folderze ProjectNameTests.Localization native development region key
na dowolny konkretny region np. Zjednoczone Królestwoźródło
BSMachError
. Przełączam region, abyUnited States
usunąć błąd. Kolejna niewytłumaczalna tajemnica Xcode.Napotkałem również ten sam problem w NSOperation działającym w wątku w tle i nadal otrzymywałem ten błąd, ponieważ UIAlertController wciąż się usuwał, gdy próbowała przeprowadzić inna transakcja interfejsu użytkownika. Zmodyfikowanie mojego kodu w ten sposób rozwiązało problem.
Wiele osób nie wie o odroczeniu - pozwala na zakończenie bieżącego zakresu, a następnie działa po. Coś schludnie.
źródło
Napotkałem ten sam błąd, nieprawidłowa zdolność (20) i nieprawidłowa nazwa (15). Wypróbowałem rozwiązania, o których wspominali inni, takie jak:
Ale żadne z tych rozwiązań nie rozwiązało mojego problemu. Właściwie próbowałem udostępnić jakiś dokument, ale generowanie dokumentu zajęłoby trochę czasu i chciałem wyświetlić użytkownikowi UIActivityIndicatorView do czasu załadowania dokumentu.
Rozwiązanie mojego błędu brzmiało:
źródło
Zmiana łańcucha lokalizacji z en na Stany Zjednoczone rozwiązała ten problem. Jednak pamiętaj, aby wyczyścić po zmianie Info.plist. Zauważyłem, że aktualizacje nie działają, gdy po prostu budujesz po wprowadzeniu zmian w plist.
źródło
W moim przypadku był to Little Snitch, automatycznie blokował adresy URL.
źródło
Mogę odtworzyć błąd dla mnie: Jeśli wprowadzę zmiany w jednym z widoków w widoku, który faktycznie zamykam (popViewControllerAnimated), otrzymuję błąd.
Mam akcję UINavigationButton, która sprawia, że zadanie asynchroniczne (POSTRequest). Przed wykonaniem tego żądania ustawiłem CustomView tego przycisku na wskaźnik postępu. Wracając z wywołania asynchronicznego, wysyłam do głównego wątku i resetuję customView tego przycisku. Następnie zamykam widok (popViewControllerAnimated).
To jest PRAWIDŁOWY kod, w którym błąd się nie pojawia:
Przyczyną błędu było przełączanie wierszy: zamknięcie widoku, a następnie ustawienie niestandardowego widoku na zero:
źródło
Ten błąd zaczął się pojawiać po dodaniu kilku obserwatorów:
Problem zniknął, gdy podałem nazwę klasy zamiast
self
:źródło
Miałem ten sam błąd i żadne z powyższych nie dotyczyło mojego problemu. Problem pojawił się, gdy zarejestrowałem swój kontroler widoku jako obserwatora zmiany orientacji urządzenia, dzięki czemu można było zmieniać rozmiar widoków, a rysunki w widoku można było tworzyć zgodnie z nowym rozmiarem widoku.
Miałem wylot viewGraph, który był podklasą UIView, w którym narysowałem trochę grafiki.W trybie poziomym rozmiar viewGraph jest większy niż w trybie portretowym. Kiedy więc urządzenie zmieniło swoją orientację, speedGraph musiał zostać przerysowany.
Problem polegał na tym, że dodałem kilka podwidoków do widoku speedGraph, który zawierał grafikę. Te podwidoki musiały zostać ponownie ułożone w widoku speedGraph, a następnie ponownie narysowane. Po tym, jak urządzenie zmieniło orientację, ponownie wywołałem viewDidAppear, aby widok speedGraph i wszystkie jego podglądy zostały ułożone od nowa i ponownie narysowały. Wywołanie setNeedsDisplay dla speedGraph nie działa w przypadku zmian orientacji i podglądów podrzędnych w widoku.
Co zrobiłem źle, co spowodowało pojawienie się błędu. W viewDidAppear wywołuję metodę, która wykonuje pewne obliczenia i dodaje podwidoki do widoku speedGraph. Problem polegał na tym, że te podwidoki zostały utworzone w metodzie i dodane do widoku speedGraph w tej metodzie. Po opuszczeniu metody odniesienia do tych widoków podrzędnych są oczywiście usuwane, ale widoki podrzędne w widoku speedGraph pozostają, ponieważ zostały dodane. Kiedy urządzenie się zmienia, podglądy są tworzone ponownie i dodawane do widoku speedGraph, który ma już te widoki podrzędne, ale nie można już znaleźć odniesień do tych widoków podrzędnych. Tablica podglądów podrzędnych widoku speedGraph staje się coraz dłuższa z (jak sądzę) wiszącymi podwidokami.
Rozwiązałem problem, definiując widoki podrzędne, które zostaną dodane do widoku speedGraph jako właściwość klasy, a następnie zrobię to, co należało zrobić z widokami wewnątrz tej metody. Wraz z tą zmianą problem zniknął.
źródło
Ponieważ możemy opublikować tutaj wszystkie sytuacje zwracające ten sam błąd, śmiało mogę opublikować mój :). Otrzymałem błąd, gdy zmieniłem ustawienia prywatności w tle. Moja aplikacja otworzyła aplikację ustawień, aby użytkownik mógł przyznać jej uprawnienia do swojej fotolibiblioteki, gdy przełącznik uprawnień jest ustawiony, aplikacja ulega awarii i wyświetla się wspomniany błąd:
Wygląda na to, że jest to wymuszone ponowne uruchomienie aplikacji przez system operacyjny, ponieważ użytkownik zmienił dostęp do aplikacji. Więc w moim przypadku jest to działanie systemu operacyjnego, który spowodował błąd.
źródło
Mam ten sam komunikat o błędzie, bo
assign
toobject
własność takiego@property (assign, nonatomic) NSNumber *aVariable;
, ustalonego przez zmianęstrong
.źródło
Na co warto - wydaje się, że wiele sytuacji rzuca ten błąd. W moim przypadku wysłałem alert, gdy użytkownik odrzucał formularz wprowadzania danych, a dane znajdowały się w formularzu. Udało mi się wyeliminować błąd, programowo rezygnując z pierwszej odpowiedzi ze wszystkich odpowiednich pól przed rozwinięciem kontrolera widoku.
źródło
prepareForSegue()
nie dzwoni i nie wiem, gdzie zrezygnować z pierwszej osoby odpowiadającej.Widziałem to, gdy nacisnąłem
Home
przycisk, gdyUIAlertController
był wyświetlany symbol a, który został odrzucony po ponownym uruchomieniu aplikacji. Dodałem kod, aby zwolnićUIAlertController
wappDelegate
:a komunikat o błędzie zniknął.
źródło
Wystąpił ten błąd podczas odrzucania popovera przez delegata. W delegateMethod uruchomiłem pewne GUI-Stuff. Umieszczenie GUI-Stuff w kompletacji CompleteBlock of dismissViewControllerAnimated naprawiło to.
źródło
Jestem w tym nowicjuszem, więc weź to za to, co jest warte.
Rozwiązaniem tego problemu była zmiana Symulowane metryki> Rozmiar> na pełny ekran iPada. Wszystkie moje poglądy Z WYJĄTKIEM tego, który spowodował ten błąd, ustawiliśmy na pełny ekran iPada. Kiedy to zmieniłem, błąd zniknął ...
źródło
Powodem, dla którego niektórzy deweloperzy nie dostają błędu, który pojawił się po zmianie z „Stanów Zjednoczonych” na „en” (lub) inny region, jest rozbieżność między widokami „Lista właściwości” i „Kod źródłowy”. To prawdopodobnie błąd Xcode. Ilekroć wystąpi rozbieżność między tymi dwoma poglądami, zgłosi ten błąd, niezależnie od tego, czy jest to „en”, czy „angielski”. Jeśli zmienisz na „en” lub „United States”, aby oba widoki były takie same, rozwiąże problem.
źródło
Otrzymałem ten błąd z:
itp
tworzenie nowej podpowiedzi ze słownika i:
a następnie użyłem zachęty w moich połączeniach ostrzegawczych. To rozwiązało problem.
Wygląda więc na to, że jest to kwestia czasu.
źródło
z Xcode 8.1 i iOS 10 też się spotkałem
_BSMachError: (os / kern) nieprawidłowa zdolność (20)
_BSMachError: (os / kern) nieprawidłowa nazwa (15)
próbując zastąpić UiTraiCollection var, aby zmienić w czasie wykonywania klasy rozmiaru iPada, aby miały dwa różne układy interfejsu w Portraid i Landscape. Działało bez awarii, ale generuje nasze błędy.
To był kod „maliciuos”:
Błędy zostały wykorzystane
override func viewWillTransition
jako alternatywa do wykrywania rotacji interfejsu.Mam nadzieję, że komuś się to przyda
źródło
W moim przypadku przyczyną błędu była zmiana rozmiaru. Zbudowany w IB. Wszystko, co może zmienić rozmiar pola tekstowego lub coś podobnego, na przykład zmiana długości linii, może prowadzić do tego błędu. W moim przypadku musiałem po prostu dostosować rozmiar pola tekstowego, aby objąć wszystkie możliwości, więc nie trzeba zmieniać rozmiaru pola i kolidować z czymś innym.
źródło