Fehlermeldung '_BSMachError: (os / kern) ungültige Fähigkeit (20)'

173

Bitte beachten Sie, dass diese Fehlermeldung ziemlich niedrig ist und daher aus verschiedenen Gründen in verschiedenen Szenarien auftritt. Wenn Sie ein Szenario haben, das in einer der folgenden Antworten nicht erwähnt wird, sollten Sie auch Ihre Situation hinzufügen. Dies könnte möglicherweise eine zentrale Antwort für verschiedene Situationen sein, die diese Fehlermeldung auslösen.

Bearbeiten 10.11.2015 Beachten Sie auch, dass ich meine eigene Antwort als Antwort markiert habe, aber das war, bevor jemand anderes gepostet hatte. Ich denke, keine sollte wirklich als Antwort markiert werden, denn wie wir jetzt unten gesehen haben ... hat dieser Fehler nicht nur eine Antwort, weil er so niedrig ist.

Ich renne

  • iOS 9.0 Simulator
  • XCode 7.0

Alles hat gestern gut funktioniert.

Heute, nach einer Reihe von Arbeiten an rotationsbezogenen Dingen, wurde dieser Fehler in meiner Konsolenausgabe angezeigt, als ich die App im Simulator ausführte und sie drehte.

_BSMachError: (os / kern) ungültige Fähigkeit (20)

_BSMachError: (os / kern) ungültiger Name (15)

Screenshot für dieses Problem - Ich habe meinen Build-Ordner gelöscht. - Ich habe den abgeleiteten Datenordner bereinigt. - Ich habe den Simulator zurückgesetzt.

Ich habe mit gearbeitet

  • UIViewController viewWillLayoutSubviews
  • UIViewController viewWillTransitionToSize:...

Ich habe auch verschiedene Einstellungen für das Zeichnen im Attributinspektor in IB überprüft.

Ich habe auch eine Dienstprogrammkategorie in UIView erstellt, in der ich eine Reihe von Methoden erstellt habe, mit denen ich CGRectAnsichten Frames zuweisen kann.

Root View Controller

Root View Controller-Einstellungen

Logicsaurus Rex
quelle
Ich erhalte diesen Fehler während der Arbeit an BLE
Nex Mishra
1
Ich kann noch keine Lösung finden und bekomme sie auch beim Drehen. Manchmal erhalte ich auch kurz darauf eine Speicherwarnung, obwohl Xcode meldet, dass nur eine geringe Menge an Speicher verwendet wird. Frustrierend.
Narco
79
Gut, dass Sie redigiert haben MyFoodTracker: P
Sam Soffes
8
Warum ist der MyFoodTracker im Screenshot mit einer roten Linie durchgestrichen?
Marián Černý
2
@LogicsaurusRex "Was bedeutet das?" ist in der Tat keine nützliche Frage, aber "Muss es repariert werden?" ist vielleicht eine bessere Frage (auf die ich die Antwort haben möchte). Meine App scheint in Ordnung zu funktionieren, zeigt aber diesen Fehler an. Ich würde es gerne festhalten und reparieren, aber dies ist keine kleine App, und es würde mich wertvolle Zeit kosten, sie zu finden.
vrwim

Antworten:

144

Basierend auf https://forums.developer.apple.com/thread/15683 :

Ändern Sie " Localization native Development Region " in " info.plistUSA" anstelle von " USA" en.

Aktualisiert: Dann können Sie diese Änderungen zurücksetzen.

Blacharnia
quelle
3
Es hat auch bei mir funktioniert. Ich habe dann die Einstellung auf "en" zurückgesetzt und der Fehler scheint nicht zurück zu kommen.
Skoua
Es hat bei mir als NEUE Instanz dieses Fehlers funktioniert. Ich habe den ursprünglichen Beitrag hier gepostet und habe diesen Fehler aufgrund eines der Kontrollkästchen für das Zeichnen erhalten. Es war für eine lange Zeit weg und begann nun aus einem anderen unbekannten Grund wieder aufzutauchen, und das zu ändern hat es tatsächlich behoben ... HEILIGE KUH, das ist großartig.
Logicsaurus Rex
Meins ist eingestellt ja, nicht en. Was soll ich machen? Stellen Sie es auf Japan?
Nicolas Miari
1
Das hat funktioniert. Jedoch wieder zurück zu en und kein Fehler 😒
Neo Ighodaro
30
Ich mag solche Antworten nicht wirklich. Weil es nichts erklärt. Ist es ein Fehler in XCode? Ist unsere Code-Positionierung falsch? Oder was?
GeneCode
66

Ich bin auch auf _BSMachErrorKonsolenfehler gestoßen, als ich über eine UIAlertControllerAktion eine tiefe Verknüpfung mit der Einstellungen-App unter iOS 9 hergestellt habe . A hat dispatch_asyncmein Problem gelöst:

[aAlertVC addAction:[UIAlertAction actionWithTitle:@"Settings" style:UIAlertActionStyleDefault handler:^(UIAlertAction * action) {
    dispatch_async(dispatch_get_main_queue(), ^{
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
    });
}]];
19Craig
quelle
2
Dies beseitigte den Konsolenfehler für mich, aber der Hauptsperrfehler, den ich zu beheben versuchte und der gleichzeitig auftrat, wurde nicht behoben
Jason
Ich kann diese Antwort wahrscheinlich verallgemeinern. Ich habe meine erhalten, als ich in einem Uialert-Controller (fast den gleichen Code) Segue durchgeführt habe. Hat wahrscheinlich damit zu tun, wie sich der Alarmcontroller aus dem Bild herausholt. Mein Problem mit dispatch_async wurde ebenfalls behoben.
user3802077
Das gleiche Problem hier - insbesondere tritt dies im 9.2-Simulator auf, wenn Systemeinstellungen in meiner App über den Handler für UIAlertAction in UIAlertController aufgerufen werden. Als ich anstelle von altem UIAlertView Code in UIAlertController umschrieb, warf die Sim die gleichen _BSMach-Fehler (15,20). Ist auf einem realen Gerät (iPad) nicht aufgetreten. Dispatch_async hat den Simulator glücklich gemacht. Ist definitiv mit UIAlertController verwandt.
Mike Kogan
Das gleiche Problem hat den Kopf wieder aufgerichtet, diesmal nicht in der Sim, sondern auf einem iPad und NICHT auf der Sim. Dieses Mal war es ein Code, der eine Ansicht in einen PDF-Kontext gerendert hat, der die Fehler verursachte. wieder hat dispatch_async das Problem behoben. Ich habe auch überprüft, dass dieser Fehler nicht auftritt, wenn dieser Code ausgeführt wird, ohne vom Completion-Handler einer UIAlertAction in einem UIAlertController aufgerufen zu werden. In beiden Fällen war der Fehler nur in der XCode-Debug-Konsole sichtbar und die App wurde weiterhin ordnungsgemäß ausgeführt. Keine der in diesem Thread vorgeschlagenen Lokalisierungsideen hatte Auswirkungen auf eines der beiden Szenarien.
Mike Kogan
@ Jason Ich hatte das gleiche Problem, es hat die Konsolenfehlermeldung entfernt, aber es stürzt immer noch ab. Hast du es irgendwie geschafft, es zu lösen?
bp14
32

Ok, ich habe es nicht vollständig festgehalten, aber das bringt Sie zu 99% dorthin. Ich verwende ein Kartensteuerelement eines Drittanbieters von ESRI, und etwas daran gefällt einer dieser Zeichnungseinstellungen im Attributinspektor nicht. Ich habe nicht jede Einstellung einzeln ausprobiert, um zu sehen, um welche Einstellung es sich handelt, aber als ich alle deaktiviert habe (im roten Feld), hat alles wie ein Zauber funktioniert, und ich habe aufgehört, die Fehlermeldung oben in der Konsole zu erhalten. Wenn ich Zeit habe, es auf die genaue Einstellung oder Kombination von Einstellungen festzulegen, werde ich die Antwort aktualisieren.

Geben Sie hier die Bildbeschreibung ein

Logicsaurus Rex
quelle
Ich finde deine Antwort ziemlich gut. Ich würde jedoch den fett gedruckten Text oben entfernen. In letzter Zeit gab es sehr viele anonyme Abstimmungen von Antworten. Ich bezweifle, dass es etwas Persönliches ist.
Jason D
Was ist, wenn ich eines davon verwenden muss?
Zaraki
15

Es ist verrückt, aber für mich bestand die Lösung darin, alle Haltepunkte in der Datei zu entfernen, in der der Fehler aufgetreten ist.

Was die Ursache betrifft? Ich glaube, ich habe versehentlich eine Tastenkombination gedrückt, um einen Haltepunkt in der aktuellen Zeile zu erstellen. Da dies nicht beabsichtigt war, drückte ich erneut dieselbe Tastenkombination, um sie zu löschen.

Oh mein lieber XCode ...

agro1986
quelle
Das hat bei mir funktioniert. Ein Hinweis darauf, dass dies das Problem war, war, dass Xcode in Zeilen ohne Haltepunkt unterbrochen wurde. Dann habe ich in einer anderen Zeile die obigen _BSMachErrors erhalten.
Didge
12

Ich habe die gleichen Fehler bekommen ...

_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15)

Ich habe openURL () von a aufgerufen UIAlertAction

alert.addAction(UIAlertAction(title: actionTitle, style: .Default) {
    UIApplication.shared.openURL(url)
 }

Die Ausführung des Blocks wird verschoben, bis die nächste Ausführungsschleife das Problem behoben hat ...

alert.addAction(UIAlertAction(title: actionTitle, style: .Default) {
    OperationQueue.main.addOperation {UIApplication.shared.openURL(url)}
 }
Murray Sagal
quelle
9

Bei der Bereitstellung neuer Daten wurde Folgendes festgestellt:

> _BSMachError: (os/kern) invalid capability (20)
> _BSMachError: (os/kern) invalid name (15)

Der Fehler trat auf, wenn eine Schaltfläche zum Bereitstellen neuer Daten verwendet wurde. An NSTimerwurde verwendet, um Daten nach der Rückkehr von einer performSegueWithIdentifierAktion zu aktualisieren und zu aktualisieren . Der Timer wurde aktiviert und sofort nach der Verwendung zur Rückkehrzeit ungültig gemacht. Die MSMachErrorstoppten, als der Timer entfernt wurde und - (void)viewWillAppear:(BOOL)animatedund (void)viewDidAppear:(BOOL)animatedwurden verwendet, um die gleiche Funktion auszuführen. Dieser Fehler begann mit dem Upgrade auf Xcode 7.

Patt
quelle
6

Ich habe dieses Problem behoben, indem ich den Wert des Localization native development regionSchlüssels von seinem in Ihrem Projekt vorhandenen Standardwert auf United Kingdom [oder eine bestimmte Region] geändert habe .eninfo.plist

  1. Wählen Project Navigator
  2. Suchen Sie die info.plistDatei im Ordner ProjectNameTests.
  3. Ändern Sie den Wert von Localization native development region keyin eine bestimmte Region, z. Großbritannien

Schritt 1 und 2

Schritt 3

Jayprakash Dubey
quelle
Ja, dieses Update klingt verrückt, aber es funktioniert. Für mich funktionierte die App, als Xcode 7.3.1 auf einem angebundenen iPod touch der 5. Generation bereitgestellt wurde. Bei der ersten Bereitstellung von Xcode auf einem angebundenen iPad Air bin ich jedoch darauf gestoßen BSMachError. Durch Umschalten der Region wird United Statesder Fehler behoben. Noch ein unerklärliches Xcode-Rätsel.
Basil Bourque
4

Das gleiche Problem trat auch in einer NSOperation auf, die auf einem Hintergrundthread ausgeführt wurde, und ich bekam immer noch diesen Fehler, weil sich ein UIAlertController immer noch selbst entfernte, als eine andere UI-Transaktion versuchte, stattzufinden. Durch Ändern meines Codes wurde das Problem behoben.

defer { 
    dispatch_async( dispatch_get_main_queue(),{
        completion()
    }) 
}

Viele Leute wissen nichts über Aufschieben. Dadurch wird der aktuelle Bereich vervollständigt und anschließend ausgeführt. Ein bisschen ordentlich.

Kellen Styler
quelle
4

Ich hatte den gleichen Fehler ungültige Fähigkeit (20) & ungültiger Name (15). Ich habe die von anderen erwähnten Lösungen ausprobiert, wie zum Beispiel:

  • Lokalisierung Native Entwicklungsregion Schlüssel in info.plist
  • Ändern der Zeichnungseinstellungen im Attributinspektor
  • Sogar das ATS-Ausnahmewörterbuch in info.plist wurde geändert

Aber keine dieser Lösungen hat mein Problem gelöst. Eigentlich habe ich versucht, ein Dokument freizugeben, aber das Generieren eines Dokuments würde einige Zeit in Anspruch nehmen und wollte dem Benutzer eine UIActivityIndicatorView anzeigen, bis das Dokument geladen ist.

Die Lösung für meinen Fehler war:

//Create a alertView add UIActivityIndicatorView to it and present it in ViewController

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0), ^{
//Call method 1 todo background process like getting data

dispatch_sync(dispatch_get_main_queue(), ^{
    //Call method 2 to update the UI
    [alert dismissViewControllerAnimated:YES completion:^(void){
        //My mistake was: I was calling method 2 over here to update the UI
        return;
    }];
});
});
1218GG
quelle
Ausgezeichnet, für mich gearbeitet! Es ist wichtig zu wissen, dass die Aktualisierung der Benutzeroberfläche in dispatch_get_main_queue ()
MkaysWork
3

Das Ändern der Lokalisierungszeichenfolge von en in USA hat dies für mich behoben. Stellen Sie jedoch sicher, dass Sie nach dem Ändern von Info.plist bereinigen. Ich habe festgestellt, dass Updates nicht funktionieren, wenn Sie sie erst erstellen, nachdem Sie Plist-Änderungen vorgenommen haben.Geben Sie hier die Bildbeschreibung ein

AlphaCodaSeven
quelle
2

In meinem Fall war es Little Snitch, es blockierte automatisch URLs.

Vaibhav Mishra
quelle
2

Ich könnte den Fehler für mich reproduzieren: Wenn eine Änderung an einer der Ansichten in einer Ansicht vorgenommen wird, die ich bereits schließe (popViewControllerAnimated), wird der Fehler angezeigt.

Ich habe eine UINavigationButton-Aktion, die eine asynchrone Aufgabe (POSTRequest) erstellt. Bevor ich diese Anforderung ausführe, setze ich die benutzerdefinierte Ansicht dieser Schaltfläche auf eine Fortschrittsanzeige. Wenn ich vom asynchronen Aufruf zurückkomme, sende ich an den Hauptthread und setze die benutzerdefinierte Ansicht dieser Schaltfläche zurück. Danach schließe ich die Ansicht (popViewControllerAnimated).

Dies ist der RICHTIGE Code, bei dem der Fehler nicht auftritt:

/* right way, working without BSMachError */
@IBAction func sendRequest(sender: UIBarButtonItem) {
    /* setting the progress indicator as customView of the self.saveButton */
    self.showActivityIndicatory(self.saveButton)
    /* asynchronous REST call */
    UserDataManager.sharedInstance.requestFeedback(request, onCompletion: { error in
        dispatch_async(dispatch_get_main_queue(),{
        /* resetting the saveButton again to default by setting customView to nil */
        self.saveButton.customView = nil
        /* closing the view */
        self.navigationController!.popViewControllerAnimated(true)
      })
    })
}

Was den Fehler verursachte, war das Wechseln der Zeilen: Schließen der Ansicht und Setzen der benutzerdefinierten Ansicht auf Null:

/* WRONG way, causing BSMachError */
@IBAction func sendRequest(sender: UIBarButtonItem) {
    /* setting the progress indicator as customView of the self.saveButton */
    self.showActivityIndicatory(self.saveButton)
    /* asynchronous REST call */
    UserDataManager.sharedInstance.requestFeedback(request, onCompletion: { error in
        dispatch_async(dispatch_get_main_queue(),{
        /* closing the view */
        self.navigationController!.popViewControllerAnimated(true)
        /* resetting the saveButton again to default by setting customView to nil */
        self.saveButton.customView = nil
      })
    })
}
Miaumi
quelle
2

Dieser Fehler trat auf, nachdem ich einige Beobachter hinzugefügt hatte:

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.keyboardWillHideOrShow(_:)), name:UIKeyboardWillShowNotification, object: nil)

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.keyboardWillHideOrShow(_:)), name:UIKeyboardWillHideNotification, object: nil)

Das Problem verschwand, als ich den Klassennamen anstelle von self:

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(MyClass.keyboardWillHideOrShow(_:)), name:UIKeyboardWillShowNotification, object: nil)

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(MyClass.keyboardWillHideOrShow(_:)), name:UIKeyboardWillHideNotification, object: nil)
Fook
quelle
2

Ich hatte den gleichen Fehler und keiner der oben genannten Fehler traf auf mein Problem zu. Das Problem trat auf, als ich meinen Ansichts-Controller als Beobachter für eine Änderung der Geräteorientierung registrierte, sodass die Größe der Ansichten geändert und die Zeichnungen in der Ansicht entsprechend der neuen Größe der Ansicht erstellt werden konnten.

Ich hatte einen Ausgang für einen viewGraph, der eine Unterklasse von UIView war, in der ich einige Grafiken gezeichnet habe. Im Querformat ist der viewGraph größer als im Hochformat. Wenn das Gerät seine Ausrichtung ändert, muss der speedGraph neu gezeichnet werden.

Das Problem war, dass ich der speedGraph-Ansicht mehrere Unteransichten hinzugefügt habe, die Grafiken enthielten. Diese Unteransichten mussten in der speedGraph-Ansicht neu angelegt und dann neu gezeichnet werden. Nachdem das Gerät seine Ausrichtung geändert hatte, rief ich erneut viewDidAppear auf, um die speedGraph-Ansicht und alle Unteransichten neu zu gestalten und neu zu zeichnen. Das Aufrufen von setNeedsDisplay für speedGraph funktioniert nicht mit Orientierungsänderungen und Unteransichten in einer Ansicht.

Was habe ich falsch gemacht, wodurch der Fehler angezeigt wurde? In viewDidAppear rufe ich eine Methode auf, die einige Berechnungen durchführt und die Unteransichten zur speedGraph-Ansicht hinzufügt. Das Problem bestand darin, dass diese Unteransichten in der Methode erstellt und in dieser Methode zur speedGraph-Ansicht hinzugefügt wurden. Nach dem Verlassen der Methode werden die Verweise auf diese Unteransichten natürlich gelöscht, aber die Unteransichten in der speedGraph-Ansicht bleiben erhalten, da sie hinzugefügt werden. Wenn sich das Gerät ändert, werden die Unteransichten erneut erstellt und der speedGraph-Ansicht hinzugefügt, die diese Unteransichten bereits enthält, die Verweise auf diese Unteransichten jedoch nicht mehr finden kann. Das Array der Unteransichten der speedGraph-Ansicht wird mit (ich denke) baumelnden Unteransichten immer länger.

Ich habe das Problem gelöst, indem ich die Unteransichten, die der speedGraph-Ansicht hinzugefügt werden, als Klasseneigenschaft definiert und dann mit den Ansichten in dieser Methode das getan habe, was getan werden musste. Mit dieser Änderung war das Problem behoben.

MacUserT
quelle
2

Da wir hier alle Situationen posten können, die den gleichen Fehler zurückgeben, konnte ich meine posten :). Ich habe den Fehler erhalten, als ich die Datenschutzeinstellungen im Hintergrund geändert habe. Meine App hat die Einstellungs-App geöffnet, damit der Benutzer der Fotobibliothek die Berechtigung erteilen kann. Wenn der Berechtigungsschalter eingestellt ist, stürzt die App mit dem folgenden Fehler ab:

_BSMachError: (os/kern) invalid capability (20)
_BSMachError: (os/kern) invalid name (15)

Dies scheint ein erzwungener Neustart Ihrer App durch das Betriebssystem zu sein, da der Benutzer geändert hat, auf was Ihre App zugreifen kann. In meinem Fall ist es also eine Aktion des Betriebssystems, die den Fehler verursacht hat.

MQoder
quelle
Ich habe auch diesen. Das ist also eigentlich kein Fehler. Wenn die App nicht mit Xcode verbunden ist, passiert nichts Schreckliches. Vielen Dank, Bruder, Sie könnten nur Stunden meiner Debugging-Zeit sparen.
Yuji
1

Ich habe die gleiche Fehlermeldung erhalten, weil ich assigneine objectEigenschaft wie @property (assign, nonatomic) NSNumber *aVariable;durch Ändern in behoben habe strong.

Allen
quelle
1

Für das, was es wert ist - es scheint, dass viele Situationen diesen Fehler auslösen. In meinem Fall hatte ich eine Warnung veröffentlicht, als der Benutzer ein Dateneingabeformular ablehnte und sich Daten im Formular befanden. Ich konnte den Fehler beheben, indem ich den Ersthelfer programmgesteuert aus allen zutreffenden Feldern zurückzog, bevor ich den View Controller abwickelte.

user2698617
quelle
Dies ist das Problem, das ich auch habe, aber da der Ansichts-Controller durch die Zurück-Schaltfläche in der Navigationsleiste des Navigations-Controllers geschlossen wird, prepareForSegue()wird er nicht angerufen und ich weiß nicht, wo ich den Ersthelfer zurücktreten soll.
TimSim
1

Ich habe dies gesehen, als ich die HomeTaste gedrückt habe , während a UIAlertControllerangezeigt wurde, was beim Neustart der App verworfen wurde. Ich habe Code hinzugefügt, um das UIAlertControllerin der appDelegate:

func applicationWillResignActive(application: UIApplication) {
  window?.rootViewController?.dismissViewControllerAnimated(false, completion: nil)
}

und die Fehlermeldung verschwand.

emrys57
quelle
1

Ich hatte diesen Fehler beim Löschen eines Popovers über einen Delegaten. In der delegateMethod habe ich einige GUI-Sachen ausgelöst. Das Einfügen des GUI-Materials in den CompletionBlock von entlassenViewControllerAnimated hat das Problem behoben.

[myPopoverView dismissViewControllerAnimated:YES completion:^{ //GUI-Stuff}];
Yedy
quelle
1

Ich bin ein Neuling in diesem Bereich, also nimm das für das, was es wert ist.

Was dies für mich behoben hat, war die Änderung der simulierten Metriken> Größe> in iPad-Vollbild. Alle meine Ansichten, mit Ausnahme derjenigen, die diesen Fehler ausgelöst hat, haben wir auf iPad-Vollbild eingestellt. Als ich es änderte, ging der Fehler weg ...

user1045302
quelle
1

Der Grund, warum einige Entwickler den Fehler nicht erhalten, nachdem sie von "Unites States" zu "en" (oder einer anderen Region) gewechselt sind, besteht darin, dass zwischen den Ansichten "Property list" und "Source code" eine Diskrepanz besteht. Es ist wahrscheinlich ein Xcode-Fehler. Immer wenn zwischen diesen beiden Ansichten eine Nichtübereinstimmung besteht, wird dieser Fehler ausgelöst, unabhängig davon, ob es sich um "en" oder "englisch" handelt. Wenn Sie in "en" oder "USA" geändert haben, damit beide Ansichten identisch sind, wird das Problem behoben.

Nein
quelle
1

Ich habe diesen Fehler erhalten von:

var promptsArr =  StartRegAlerts() //Instance of the class

etc

func textFieldDidBeginEditing(textField: UITextField) {     
    switch textField.tag {
            case 0:
                alert(promptsArr.prompts["Name"]!)
            case 1:
                alert(promptsArr.prompts["CellPhone"]!)
            case 4:
                alert2(promptsArr.prompts["NUMBERCORRECT"]!)
                //alert(promptsArr.prompts["Wait4Pin"]!)

            default: break
            }
It only occurred for case 0 but not the other cases:
As a work around for now I commented out case 0 and that stopped the error.
I then changed  calling promptsArr.prompts by:

Erstellen einer neuen Wörterbuch-Eingabeaufforderung und:

 override func viewDidAppear(animated: Bool) {
             prompt = promptsArr.prompts //
      }

und dann Eingabeaufforderung in meinen Alarmanrufen verwendet. Das hat das Problem behoben.

Es scheint also ein Zeitproblem zu sein.

Jeremy
quelle
Ich fürchte, es hat nur eine Weile funktioniert und ist dann wieder aufgetaucht. Wenn Sie also Fall 1 auskommentieren und diese Warnung später aufrufen, scheint das Problem behoben zu sein.
Jeremy
0

mit Xcode 8.1 und iOs 10 habe ich auch konfrontiert

_BSMachError: (os / kern) ungültige Fähigkeit (20)

_BSMachError: (os / kern) ungültiger Name (15)

Der Versuch, UiTraiCollection var zu überschreiben, um zur Laufzeit die Größenklassen des iPad zu ändern und zwei verschiedene Schnittstellenlayouts in Portraid und Landscape zu haben. Es hat ohne Absturz funktioniert, aber unsere Fehler generiert.

Dies war der "Maliciuos" -Code:

override public var traitCollection: UITraitCollection {
    if UIDevice.currentDevice().userInterfaceIdiom == .Pad && UIDevice.currentDevice().orientation.isPortrait.boolValue {
        return UITraitCollection(traitsFromCollections:[UITraitCollection(horizontalSizeClass: .Compact), UITraitCollection(verticalSizeClass: .Regular)])
    }
    return super.traitCollection
}

Die Fehler werden override func viewWillTransitionals Alternative zur Erkennung der Schnittstellendrehung verwendet.

Ich hoffe, dass dies jemandem nützlich sein wird

Swalsz
quelle
0

In meinem Fall lag die Fehlerursache in der Größenänderung. Erbaut in IB. Alles, was die Größe eines Textfeldes oder ähnliches ändern kann, zum Beispiel die Zeilenlänge, kann meines Erachtens zu diesem Fehler führen. In meinem Fall musste ich einfach die Größe des Textfelds anpassen, um alle Möglichkeiten abzudecken, damit die Größe des Felds nicht geändert werden muss und Konflikte mit etwas anderem auftreten müssen.

Terence K.
quelle