2017-07-29 16 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()) 

在第二個示例中,網橋功能按預期方式運行,並且可通過引用參數更新傳遞。