有没有一种方法可以获取Objective-C对象的PyObjC代理对象,仅将其id
作为整数?没有扩展模块可以完成吗?
就我而言,我试图从返回值wx.Frame.GetHandle
(使用wxMac和Cocoa)中获取一个Cocoa代理对象。
我确实找到的一种解决方案依赖于ctypes
从创建一个objc_object
对象id
:
import ctypes, objc
_objc = ctypes.PyDLL(objc._objc.__file__)
# PyObject *PyObjCObject_New(id objc_object, int flags, int retain)
_objc.PyObjCObject_New.restype = ctypes.py_object
_objc.PyObjCObject_New.argtypes = [ctypes.c_void_p, ctypes.c_int, ctypes.c_int]
def objc_object(id):
return _objc.PyObjCObject_New(id, 0, 1)
用于打印的示例wx.Frame
:
import wx
class Frame(wx.Frame):
def __init__(self, title):
wx.Frame.__init__(self, None, title=title, pos=(150,150), size=(350,200))
m_print = wx.Button(self, label="Print")
m_print.Bind(wx.EVT_BUTTON, self.OnPrint)
def OnPrint(self, event):
topobj = objc_object(top.GetHandle())
topobj.print_(None)
app = wx.App()
top = Frame(title="ObjC Test")
top.Show()
app.MainLoop()
因为使用,所以有点讨厌ctypes
。如果有pyobjc
我忽略的API函数或其他更巧妙的方法,我肯定会感兴趣。
问题内容: 我遇到一些与parse.com相关的问题,我想获取特定对象的数据…我已经使用以下代码来获取数据,但似乎已被贬值。 我使用以下代码来获取数据形式的objectId: 这里“ U8mCwTHOaC”是我的objectId,我想获取此objectId的行。谢谢。 问题答案: 如果要从用户表中获取数据。 如果要当前用户的行
在React/FireStore应用程序上工作,尝试将Id-s放回objects数组中。代码如下: 知道'_zipobject'行有什么问题吗?
问题内容: 如果知道与该线程关联的ID,该如何获取正在运行的线程的引用? 例如 问题答案: 您有2种方法可以做到。两者都很简单: 旧方法:获取您可以循环访问..getParent()的根线程组。并打电话 较新(但速度较慢)。 第一种方法有一个小问题,由于存在错误,ThreadGroup可能根本无法枚举任何东西。 第二个比较慢,但是有安全漏洞。
问题内容: 我有一个JSON文件,其中包含一些我想在AngularJS网站上访问的数据。现在,我要从数组中仅获取一个对象。因此,我想例如ID为1的商品。 数据如下所示: 我想使用AngularJS $ http功能加载数据,如下所示: 这正在工作。但是,现在如何从获取的数组中获取特定的数据对象(按ID)呢? 在此先感谢您的帮助。 马克·马克 问题答案: 唯一的方法就是遍历数组。显然,如果您确定结果
PyObjC 旨在为 Python 和 Objective-C 两种语言之间提供交互的接口。Python 语言可以通过PyObjC来使用已有的Objective-C的代码,反过来Objective-C也可以利用Python语言的一些功能。 PyObjC最主要的用处是在 Mac OS X 系统下使用纯Python语言来开发 Cocoa GUI 应用程序。 示例代码: class MyClass(N
如何从对象获取数组?我试图进入空数组,这样我就可以验证它的空状态。 输出