ich vermute, dass Sie diesen Fehler bekommen, weil Sie eine BWSplitView in einer nib/xib Datei, die Sie zu laden versuchten hatte. Um die Objekte in einer NIB-Datei zu entpacken, muss die Runtime Instanzen der archivierten Klassen (z. B. BWSplitView) erstellen können. Die Ausnahme, die ausgelöst wird, liegt darin, dass BWSplitView für die Laufzeit nicht verfügbar ist. In einer Objective-C-Anwendung würden Sie eine Verknüpfung zum BWToolkit-Framework herstellen, und der dynamische Linker würde BWSplitView für die Laufzeit verfügbar machen. In einer PyObjC-Anwendung müssen Sie explizit Klassen importieren, die für die Laufzeit verfügbar sein sollen (die nicht im Hintergrund für Sie verknüpft sind, z. B. die Cocoa-Klassen). Glücklicherweise hat BWToolkit eine Bridge-Unterstützungsdatei, so dass Sie es direkt importieren können (vorausgesetzt, es befindet sich in einem Standard-Framework-Verzeichnis wie/Library/Frameworks). Wenn Sie ein Framework laden müssen, das keine Bridge-Unterstützungsdatei enthält, können Sie objc.loadBundle
verwenden und dann NSClassFromString
verwenden, um ein Klassenobjekt abzurufen.
Nebenbei bemerkt,/System/Library/Frameworks ist für Apple-Systemframeworks reserviert. Sie sollten keine Frameworks von Drittanbietern in diesen Ordner einfügen, da Apple diesen Ordner bei einem Systemupdate möglicherweise löscht (unwahrscheinlich, aber möglich). Threat-Party-Frameworks, die allen Benutzern auf einem System zur Verfügung gestellt werden, sollten in/Library/Frameworks, benutzerspezifische Frameworks ähnlich in ~/Library/Frameworks und anwendungsspezifischen Frameworks in Contents/Frameworks, innerhalb des App-Bundles der Anwendung, abgelegt werden.
Und anwendungsspezifische Frameworks in (Ihr App-Bundle)/Inhalte/Frameworks. –