ロードしようとしたnib/xibファイルにBWSplitViewがあったため、このエラーが発生したと思われます。nibファイル内のオブジェクトをアーカイブ解除するには、ランタイムがアーカイブされたクラスのインスタンス(BWSplitViewなど)を作成できる必要があります。スローされる例外は、ランタイムでBWSplitViewを使用できないためです。Objective-Cアプリでは、BWToolkitフレームワークにリンクし、ダイナミックリンカーがBWSplitViewをランタイムで利用できるようにする作業を行います。PyObjCアプリでは、ランタイムで使用できるようにするクラス(Cocoaクラスなどのバックグラウンドでリンクされていないクラス)を明示的にインポートする必要があります。幸い、BWToolkitにはブリッジサポートファイルがあるため、直接インポートできます(/ Library / Frameworksなどの標準のフレームワークの場所にあると想定しています)。objc.loadBundle
次に、を使用NSClassFromString
してクラスオブジェクトを取得します。
ちなみに、/ System / Library / Frameworksは、Appleが提供するシステムフレームワーク用に予約されています。Appleはシステムアップデート時にそのフォルダをワイプする可能性があるため、サードパーティのフレームワークをそのフォルダに配置しないでください(可能性は低いですが可能です)。システム上のすべてのユーザーが利用できるサードパーティのフレームワークは/Library/ Frameworksに、ユーザー固有のフレームワークは同様に〜/ Library / Frameworksに、アプリケーション固有のフレームワークはContents/Frameworksに配置する必要があります。