在pyobjc应用中调用自定义Objective-C?
这个问题其实是另一个问题的反向版本:从Objective-C调用Python
我已经用Objective-C实现了我的iPhone应用逻辑,现在想尽量在服务器部分重用我在XCode项目中的代码,以避免重复实现。我已经成功地从Python加载了CoreData数据模型,但不知道怎么从Python调用Objective-C的逻辑。
简单来说,我想从Python访问我iPhone项目中的Objective-C类和方法,这样就不用重复写一遍了。
这有可能实现吗?还是说重复实现是唯一的解决办法?感觉像是可以用Boost::Python来解决这个问题,但我不太确定。
补充:Boost::Python不行,因为它是基于C++的,而我需要的是Objective-C。我知道这就是它不行的原因。
1 个回答
1
如果你的Objective-C代码在一个框架里,而你想写一个使用这个框架的Python应用程序,那么你可以使用 objc.loadBundle
。接着,你可以用 objc.lookUpClass
或 NSClassFromString
来获取你的类。这样一来,你就可以像使用其他桥接的Objective-C类一样使用你的类了。
如果你在一个已经启动了Objective-C运行环境的进程中运行你的Python代码,并且你的类已经在里面注册好了,那么你就可以省略加载框架这一步。