我正在研究Objective-C应用程序的MonoTouch绑定。我提到了 iOS Binding Walkthrough 。
我为i386,ARM生成了库,然后是通用库。此外,我创建了一个MonoTouch绑定项目。我使用Sharpie生成了ApiDefinition并添加了之前生成的通用库。现在,当我构建这个项目时,我收到以下错误。
ADClusterAnnotation.g.cs(86,86):错误CS0533:
AnnotationClusterMap.ADClusterAnnotation.Coordinate'隐藏继承的抽象成员MonoTouch.MapKit.MKAnnotation.Coordinate'(CS0533)
以下是ADClusterAnnotation的代码片段:
@interface ADClusterAnnotation : NSObject <MKAnnotation> {
CLLocationCoordinate2D _coordinates;
}
@property (nonatomic) CLLocationCoordinate2D coordinate;
@end
@synthesize coordinate = _coordinates;
以下是ApiDefinition
的代码段[BaseType (typeof (MKAnnotation))]
public partial interface ADClusterAnnotation {
[Export ("coordinate")]
CLLocationCoordinate2D Coordinate { get; set; }
}
所以我认为我们需要在ApiDefinition中改变一些东西。我尝试在API定义中从ADClusterAnnotation中删除Coordinate,但是它给出了一个错误,它实现了一个抽象成员。关于Monotouch绑定我缺少什么?
答案 0 :(得分:2)
覆盖抽象成员需要c#
new
或override
您可以通过将ApiDefinition更改为:
来生成该文件[BaseType (typeof (MKAnnotation))]
public partial interface ADClusterAnnotation {
[Export ("coordinate")]
[New]
CLLocationCoordinate2D Coordinate { get; set; }
}