Я подозреваю, что вы получили эту ошибку, потому что у вас был BWSplitView в файле nib / xib, который вы пытались загрузить. Для разархивирования объектов в файле пера среда выполнения должна иметь возможность создавать экземпляры заархивированных классов (например, BWSplitView). Бросается исключение, потому что BWSplitView не доступен для среды выполнения. В приложении Objective-C вы будете ссылаться на платформу BWToolkit, а динамический компоновщик сделает работу BWSplitView доступной для среды выполнения. В приложении PyObjC вы должны явно импортировать классы, которые вы хотите сделать доступными для среды выполнения (которые не связаны за кулисами для вас, например, классы Какао). К счастью, в BWToolkit есть файл поддержки моста, так что вы можете импортировать его напрямую (при условии, что он находится в стандартном расположении фреймворка, например / Library / Frameworks). Если вам нужно загрузить фреймворк, у которого нет файла поддержки моста, вы можете использовать objc.loadBundle
, а затем NSClassFromString
, чтобы получить объект класса.
В дополнение к этому / System / Library / Frameworks зарезервировано для системных платформ Apple. Не следует помещать сторонние фреймворки в эту папку, так как Apple может стереть эту папку при обновлении системы (маловероятно, но возможно). Трехсторонние интегрированные среды, которые доступны всем пользователям в системе, должны быть помещены в / Library / Frameworks, пользовательские интегрированные среды аналогично в ~ / Library / Frameworks и специфичные для приложения интегрированные среды в Contents / Frameworks, которые находятся в комплекте приложения.