Integration with ctypes¶
The standard library module ctypes
can be used to interact
with arbitrary C APIs. PyObjC contains some APIs that make interacting
with ctypes easier by having a way to convert PyObjC objects to and
from instances of c_void_p
.
Converting Objective-C instances to and from c_void_p¶
Converting an
c_void_p
to a PyObjC proxy type of the right type can be done by callingobjc.objc_object
with a c_void_p argument:ctypes_value = ... # Somehow get a ctypes pointer instance = objc.objc_object(c_void_p=ctypes_value)
Converting an PyObjC proxy instance to a
c_void_p
is done by the method__c_void_p__
.
Converting Opaque Pointer values to and from c_void_p¶
Converting an
c_void_p
to a PyObjC opaque pointer type can be done by calling the proxy type with a with a c_void_p argument:ctypes_value = ... # Somehow get a ctypes pointer instance = Foundation.NSZonePtr(c_void_p=ctypes_value)
Converting an PyObjC proxy instance to a
c_void_p
is done by the method__c_void_p__()
.