3

我正在处理一个 Objective-C 应用程序的MonoTouch绑定。我提到了 iOS 绑定演练

我已经为 i386、ARM和通用库生成了库。此外,我创建了一个 MonoTouch 绑定项目。我已经使用 Sharpie 生成了 ApiDefinition 并添加了之前生成的通用库。现在,当我构建这个项目时,我收到以下错误。

ADClusterAnnotation.g.cs(86,86):错误 CS0533:
AnnotationClusterMap.ADClusterAnnotation.Coordinate' 隐藏继承的抽象成员 MonoTouch.MapKit.MKAnnotation.Coordinate' (CS0533)

下面是 ADClusterAnnotation 的代码片段:

文件 ADClusterannotation.h

@interface ADClusterAnnotation : NSObject <MKAnnotation> {
    CLLocationCoordinate2D  _coordinates;   
}
@property (nonatomic) CLLocationCoordinate2D coordinate;
@end

文件 ADClusterAnnotation.m

@synthesize coordinate = _coordinates;

这是来自 ApiDefinition 的代码片段

[BaseType (typeof (MKAnnotation))]
public partial interface ADClusterAnnotation {
    [Export ("coordinate")]
    CLLocationCoordinate2D Coordinate { get; set; }
}

所以我认为我们需要在 ApiDefinition 中进行一些更改。我尝试从API定义中的 ADClusterAnnotation 中删除 Coordinate ,但是它给出了一个错误,它实现了一个抽象成员。关于 Monotouch 绑定,我缺少什么?

4

1 回答 1

2

覆盖抽象成员 requirec# newoverride

您可以通过将 ApiDefinition 更改为:

[BaseType (typeof (MKAnnotation))]
public partial interface ADClusterAnnotation {
    [Export ("coordinate")]
    [New]
    CLLocationCoordinate2D Coordinate { get; set; }
}
于 2013-08-03T06:20:58.587 回答