2017-07-29 53 views
0

以下问题描述了一个Python函数调用一个Objective-C的功能,需要通过引用传递的变量的情况:传递NSError对象通过参考随着Pyobjc

Can't call methods on objects in pyObjC

然而,问题被张贴在2012年,接受的答案似乎不再起作用。我们如何将NSError对象传递给函数并获取返回的值?

我的函数调用是我无法编辑的框架的一部分,所以我一直负责找到使其工作的方法。

+0

这有帮助吗? https://stackoverflow.com/questions/4353403/pyobjc-and-returning-out-parameters-i-e-nserror 它似乎更老,所以也许不是.. – Dale

回答

0

看来我试图错误地访问我的自定义框架。

CustomFrameworkBundle = objc.loadBundle("Custom", globals(), bundle_path=objc.pathForFramework(u'Custom.framework')) 

而在定制的框架功能是访问,这需要通过引用传递参数的功能将不会被正确处理和预期收益的元组可以表示为:最初,我通过加载CustomFrameworkBundle访问的框架原来的函数返回。

import objc as _objc 
__bundle__ = _objc.initFrameworkWrapper("Custom", 
             frameworkIdentifier="com.c1pher.Custom", 
             frameworkPath=_objc.pathForFramework("/Library/Frameworks/Custom.framework"), 
             globals=globals()) 

在第二个示例中,网桥功能按预期方式运行,并且可通过引用参数更新传递。