以下问题描述了一种情况,其中 python 函数调用 Objective-C 函数需要通过引用传递变量:
Can't call methods on objects in pyObjC
但是,该问题是在 2012 年发布的,接受的答案似乎不再有效。我们如何将 NSError 对象传递给函数并获取返回值?
我的函数调用是我无法编辑的框架的一部分,因此我的任务是找到一种使其工作的方法。
最佳答案
我似乎试图错误地访问我的自定义框架。最初,我通过加载 CustomFrameworkBundle 来访问框架:
CustomFrameworkBundle = objc.loadBundle("Custom", globals(), bundle_path=objc.pathForFramework(u'Custom.framework'))
虽然自定义框架中的函数可以访问,但需要通过引用传递参数的函数将无法正确处理,并且预期返回元组将表示为原始函数返回。
import objc as _objc
__bundle__ = _objc.initFrameworkWrapper("Custom",
frameworkIdentifier="com.c1pher.Custom",
frameworkPath=_objc.pathForFramework("/Library/Frameworks/Custom.framework"),
globals=globals())
在第二个示例中,桥接功能按预期运行,并且可以访问通过引用传递的更新参数。
关于python - 使用 Pyobjc 通过引用传递 NSError 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45383923/