我正在嘗試做什麼在MonoTouch binding page上顯示,並添加一些方法到綁定類。它表示我所要做的就是將這些包含在一個單獨的文件中定義的部分類中,該文件包含在使用-s選項的生成過程中。問題是生成的類不是部分類,當我運行btouch時,出現以下錯誤:MonoTouch綁定不創建部分類
$/Developer/MonoTouch/usr/bin/btouch -v Node.cs -s:Extensions。 cs /Developer/MonoTouch/usr/bin/smcs -unsafe -target:library Node.cs -nowarn:436 -out:/var/folders/cy/g71b7mr91rn4slbpq5cm39140000gn/T/u983s550.k1k/temp.dll -r:/開發人員/ MonoTouch/usr/lib/btouch/btouch.exe Extensions.cs -r:/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll
Node.cs(7,19):錯誤CS0260:缺少部分修飾符聲明類型NodeNameSpace.Node'. Another partial declaration of this type exists Extensions.cs(5,30): (Location of the symbol related to previous error) Extensions.cs(5,30): error CS0261: Partial declarations of
NodeNameSpace.Node'必須是所有類,所有結構或所有接口 Node.cs(7,19):(與前一個錯誤相關的符號的位置) Extensions.cs(7,29):error CS0106:The modifierpublic' is not valid for this item Extensions.cs(10,25): error CS0531:
NodeNameSpace.Node.IsExpanded.get':interface members can not have a definition Extensions.cs(14,25):error CS0531:`NodeNameSpace.Node.IsExpanded .set':接口成員不能定義 編譯失敗:5個錯誤,0個警告 btouch:API綁定包含錯誤。
據對binding MonoTouch的頁面:
通過從API定義文件中的發電機產生的每個類是一個局部類
Node.cs
using System;
using MonoTouch.Foundation;
namespace NodeNameSpace
{
[BaseType (typeof (NSObject))]
interface Node
{
[Export ("expanded")]
NSNumber Expanded { get; set; }
}
}
Extensons.cs
using MonoTouch.Foundation;
namespace NodeNameSpace
{
public partial class Node
{
public bool IsExpanded
{
get
{
return Expanded.BoolValue;
}
set
{
Expanded = NSNumber.FromBool(value);
}
}
}
}
我在幫助中看不到-x。我也嘗試使用它時出錯:錯誤CS2007:無法識別的命令行選項:'-x:Extensions.cs' – BLeB
$/Developer/MonoTouch/usr/bin/mtouch --version mtouch 4.2.2.1317158288 – BLeB
對不起,這是一箇舊的更改(9月5日),但它看起來沒有反向移植到monotouch-4.2分支。它*將*在未來版本中可用(來自'主')。與此同時,您可以聯繫[email protected]來申請該工具的更新二進制文件(僅鏈接到此問題)。 – poupou