gpt4 book ai didi

python - 实现 PyObjc NsObject 子类

转载 作者:行者123 更新时间:2023-12-03 17:25:37 24 4
gpt4 key购买 nike

我有一个 Objc-C 项目,我希望能够通过 Python 处理一些数据。为此,我决定实现一个 PyObjc NSObject 子类,然后通过接口(interface)构建器将其链接到我的 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

最佳答案

我听说 Xcode 4 与 PyObjC 的配合不太好,但我仍在使用 3,所以我不能确定。

您的第二个错误的原因(这也让我一直)是您需要将自定义类导入到项目的 main.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 位的应用程序。 Snow Leopard 附带的 PyObjC 仅编译为 32 位(实际上,我认为默认的 Python 也是如此)。尝试将 Target 的构建架构切换为 32 位或 32/64 位通用。您还可以重新编译 PyObjC 并将其包含在您的应用程序包中 - 我自己还没有尝试过。

关于python - 实现 PyObjc NsObject 子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5848282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com