2011-05-01 59 views
1

我有一個Objc-C項目,我希望能夠通過Python處理一些數據。爲此,我決定實現一個PyObjc NSObject子類,然後通過界面構建​​器鏈接到我的Obj-C類。實現PyObjc NsObject子類

我加入了Python框架,以我的項目,並用以下簡單的代碼的Python文件:

import objc 
from Foundation import * 
from AppKit import * 

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

我在廈門國際銀行創建了一個PythonWrapper實例(建設者自動識別它的名字)。但是,當建設,即使沒有已經鏈接到它的其他類,我得到了以下問題:

忽略文件/Developer/SDKs/MacOSX10.6.sdk/Library/Frameworks//Python.framework/ Python中,在文件中缺少所需的體系結構x86_64的

而且,Xcode的日誌也顯示:

未知類的PythonWrapper',用 'NSObject的' 代替。遇到Interface Builder文件路徑/Users/joao/Library/Developer/Xcode/DerivedData/Jalioneiro-ekjwzbkqqgpyekadkyebhgdsjcxo/Build/Products/Debug/Jalioneiro.app/Contents/Resources/en.lproj/Interface.nib。

我在這裏錯過了什麼?有沒有其他方法可以將Python代碼鏈接到我的Obj-C類?

注:我正在xCode4

回答

0

我聽說的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並將其包含在你的應用程序包中的路徑 - 沒有自己嘗試過。