实现PyObjc NsObject子类

2024-09-25 06:24:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Objc-C项目,我希望能够通过Python处理一些数据。为此,我决定实现一个PyObjc NSObject子类,然后通过接口生成器将其链接到我的Obj-C类。在

我将Python框架添加到我的项目中,并添加了一个包含以下简单代码的Python文件:

import objc
from Foundation import *
from AppKit import *

class PythonWrapper(NSObject):
    def applicationDidFinishLaunching_(self, sender):
        NSLog("Application did finish launching.")

我在XIB中创建了一个PythonWrapper实例(构建器自动识别它的名称)。但是,在构建时,即使没有链接到其他类,我也会遇到以下问题:

Ignoring file /Developer/SDKs/MacOSX10.6.sdk/Library/Frameworks//Python.framework/Python, missing required architecture x86_64 in file

此外,xCode日志还显示:

Unknown class 'PythonWrapper', using 'NSObject' instead. Encountered in Interface Builder file at path /Users/joao/Library/Developer/Xcode/DerivedData/Jalioneiro-ekjwzbkqqgpyekadkyebhgdsjcxo/Build/Products/Debug/Jalioneiro.app/Contents/Resources/en.lproj/Interface.nib.

我错过了什么?有没有其他方法可以将python代码链接到我的Obj-C类?在

注意:我正在编写xCode4


Tags: 项目代码infromimportobjdeveloper链接
1条回答
网友
1楼 · 发布于 2024-09-25 06:24:40

我听说xcode4不能很好地与PyObjC配合使用,但是我仍然在使用3,所以我不能确定。在

第二个错误的原因(这也一直困扰着我)是您需要将自定义类导入到项目的主.py公司名称:

#import modules required by application
import objc
import Foundation
import AppKit

from PyObjCTools import AppHelper

# import modules containing classes required to start application and load MainMenu.nib
import MyAppDelegate
import MyCustomView
import MyArrayController

# pass control to AppKit
AppHelper.runEventLoop()

第一个错误看起来像是要构建一个仅64位的应用程序。雪豹附带的PyObjC只编译为32位(实际上,我认为默认Python也是如此)。尝试将目标的构建架构切换到32位或32/64位通用。你也可以重新编译PyObjC,并把它包含在你的应用程序包中,我自己都没试过。在

相关问题 更多 >