首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BWSplitView和PyObjc

BWSplitView和PyObjc
EN

Stack Overflow用户
提问于 2009-05-15 17:24:05
回答 3查看 736关注 0票数 3

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

代码语言:javascript
复制
NSInvalidUnarchiveOperationException - *** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (BWSplitView)

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-05-15 17:51:02

我怀疑您之所以得到这个错误,是因为您试图加载的nib/xib文件中有一个BWSplitView。为了解压nib文件中的对象,运行时需要能够创建归档类的实例(例如BWSplitView)。抛出的异常是因为BWSplitView对运行时不可用。在Objective-C应用程序中,您将链接到BWToolkit框架,动态链接器将执行使BWSplitView对运行时可用的工作。在PyObjC应用程序中,您必须显式地导入您希望运行时可用的类(这些类不是在幕后链接的,比如Cocoa类)。幸运的是,BWToolkit有一个桥支持文件,因此您可以直接导入它(假设它位于标准框架位置,如/库/框架)。如果您需要加载一个没有桥支持文件的框架,您可以使用objc.loadBundle,然后使用NSClassFromString来获取类对象。

另外,/ system /Library/Frameworks是为Apple提供的系统框架保留的。你不应该将第三方框架放在那个文件夹中,因为Apple可能会在系统更新时擦除该文件夹(不太可能,但有可能)。向系统上的所有用户提供的第三方框架应该放在/Library/Frameworks中,用户特定的框架类似地放在~/Library/Frameworks中,应用程序特定的框架放在Contents/Frameworks中,在应用程序的应用程序捆绑包中。

票数 5
EN

Stack Overflow用户

发布于 2009-05-15 17:42:52

我已经使用以下步骤修复了这个问题:

  1. 下载并安装BWToolkit.framework您已在/System/
  2. /Frameworks中安装了BWToolkit.framework(这可以通过重新下载BWToolkit并复制文件夹来完成)
  3. 使用main.py

中的导入BWToolkitFramework

票数 0
EN

Stack Overflow用户

发布于 2009-11-20 11:20:31

我们也收到了类似的信息:

代码语言:javascript
复制
*** Terminating app due to uncaught exception ‘NSInvalidUnarchiveOperationException’, reason: ‘*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (MKMapView)’

在我们的例子中,这是由于目标的构建设置下的“框架搜索路径”设置中的一个错误条目造成的。当该条目被清除时,问题就消失了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/869912

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档