gpt4 book ai didi

python - BWSplitView 和 PyObjc

转载 作者:太空宇宙 更新时间:2023-11-03 14:35:40 25 4
gpt4 key购买 nike

我正在尝试在 Cocoa PyObjc 项目中使用来自 BWToolkit 的 Brandon Walkin 的 BWSplitView。当我运行该项目时,我收到以下错误消息:

NSInvalidUnarchiveOperationException - *** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (BWSplitView)

这是否意味着他的工具包与 PyObc 项目不兼容,所以我应该只使用默认的界面构建器 View ? BWToolkit 似乎非常适合我的程序,我打算在我的界面中的其他地方使用它。

最佳答案

我怀疑您遇到该错误是因为您在试图加载的 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 中,在应用程序的应用程序包中。

关于python - BWSplitView 和 PyObjc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/869912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com