Передача объекта NSError по ссылке с Pyobjc

Следующий вопрос описывает ситуацию, когда функция python вызывает функцию Objective-C, для которой требуется переменная, передаваемая по ссылке:

Не удается вызвать методы для объектов в pyObjC

Однако вопрос был опубликован в 2012 году, и принятый ответ больше не работает. Как мы можем передать объект NSError в функцию и получить возвращаемое значение?

Мой вызов функции является частью фреймворка, который я не могу редактировать, поэтому мне было поручено найти способ заставить его работать.


person C1pher    schedule 29.07.2017    source источник
comment
Это помогает? stackoverflow.com/questions/4353403 / кажется еще старше, так что может и нет..   -  person Dale    schedule 29.07.2017


Ответы (1)


Похоже, я попытался неправильно получить доступ к своей пользовательской платформе. Первоначально я получил доступ к фреймворку, загрузив 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())

Во втором примере мост функционировал, как и ожидалось, и были доступны обновленные переданные по ссылке параметры.

person C1pher    schedule 18.09.2017