2012-03-26 36 views
3

我想在MonoTouch項目中使用OpenFeint。我沒有經驗來創建適當的綁定來使用Mono的第三方Objective-C庫。在Xamarin網站上閱讀this文章並沒有真正幫助我。有沒有人創建了與MonoTouch一起使用OpenFeint所需的綁定,或者有任何人創建我需要的綁定的經驗?OpenFeint與MonoTouch

回答

3

這真的很容易。

文件 - >新建項目 - > MonoTouch->的MonoTouch綁定項目

第一件事添加的Objective-C庫(*某文件),它是構建選項應自動說Native Library

添加它們提供的所有頭文件,其構建選項爲None(這僅供參考,以幫助您編寫綁定)。

通讀頭文件並開始編寫在ApiDefinitions.cs文件綁定:

  • 使用[BaseType(typeof(NSObject))]除非他們班從別的
  • 上的方法
  • 使用[Export("yourMethod:")]
  • 公告+和繼承 - 方法上的符號,+表示靜態方法,在您的末端使用[Static]表示
  • 如果遇到委託類(您需要繼承),請添加[Model] ,否則它會作爲一個密封類
  • 如果您需要連接其他庫來編譯,修改在designer.cs文件,顯示了* .A庫
  • 枚舉在去下面的[LinkWith]屬性另一個* .cs文件(我忘記了名字)
  • #define MyConstant 1 - 像這些常量應該放在類頭文件中。定義一個新的* .cs文件,其中類爲partial。你也可以把多餘的C#代碼。如果你想
  • 地圖NSTypes到相應的C#類型的類:的NSString - >串等
  • 隨意因此他們不是啞巴重命名的OBJ-C型。我已經在每個方法,成員等上運行了隨機前綴 - 移除那樣的東西。
  • 閱讀您在問題中提供的鏈接
  • 當所有內容都說完之後,只需引用新庫(不要在項目設置中使用任何額外的構建選項,您不必再使用這些選項)

一般來說,最好是自己動手做,這樣你就可以像老闆一樣舒適地綁定Obj-C庫。這就是我會告訴我的部門新聘的人員。

+0

我已經下載了OpenFeint SDK,並且能夠使用xcode構建它。不幸的是,我的硬盤上沒有* .a文件。任何指針如何獲得? – Thijs 2012-03-26 12:02:31

+0

我在下載中看到'BuildUniversalBinary.sh'文件。你可以運行它,看看它做了什麼?我現在在Windows上,我不能。 – jonathanpeppers 2012-03-26 12:09:35

+0

我想運行該文件,但它給了我以下錯誤:builduniversalbinary.sh:第6行:CONFIGURATION:unbound變量。我想弄清楚如何解決它。讓我確認我應該在終端中使用該文件,如下所示:「sh BuildUniversalBinary.sh」 – Thijs 2012-03-26 12:45:58

1

除了@Jonathan優秀的答案...

有在GitHub上提供了一些綁定項目,例如從Xamarin,如果您不確定如何將一些Objective-C結構轉換爲C#,可以給出提示。真正的例子通常對理論非常有幫助。

如果您曾經在某個特定的地方受到阻撓,請隨時詢問具體的問題,請在這裏或在mailing-list

+0

謝謝,很好的建議!我會投兩個答案,但唉,我沒有必要的聲譽。 – Thijs 2012-03-27 06:28:32