【发布时间】:2011-09-30 16:08:31
【问题描述】:
我正在尝试执行 MonoTouch binding page 上显示的操作,并向绑定类添加一些方法。它说我所要做的就是将它们包含在一个单独的文件中定义的部分类中,该文件包含在带有 -s 选项的生成过程中。问题是生成的类不是部分类,当我运行 btouch 时出现以下错误:
$ /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:/Developer/ MonoTouch/usr/lib/btouch/btouch.exe Extensions.cs -r:/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll
Node.cs(7,19): error CS0260: Missing partial modifier on type of declaration ofNodeNameSpace.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 ofNodeNameSpace.Node' 必须是所有类、所有结构或所有接口 Node.cs(7,19):(与先前错误相关的符号位置) Extensions.cs(7,29):错误 CS0106:修饰符public' is not valid for this item Extensions.cs(10,25): error CS0531:NodeNameSpace.Node.IsExpanded.get':接口成员不能有定义 Extensions.cs(14,25):错误 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);
}
}
}
}
【问题讨论】:
标签: c# objective-c ios binding xamarin.ios