2012-02-17 217 views
3

我试图使用MonoTouch的btouch工具符合其他协议绑定协议

Objective-C的协议绑定的协议:

@protocol KalDataSource <NSObject, UITableViewDataSource> 
- (void)presentingDatesFrom:(NSDate *)fromDate to:(NSDate *)toDate delegate:(id<KalDataSourceCallbacks>)delegate; 
- (NSArray *)markedDatesFrom:(NSDate *)fromDate to:(NSDate *)toDate; 
- (void)loadItemsFromDate:(NSDate *)fromDate toDate:(NSDate *)toDate; 
- (void)removeAllItems; 
@end 

BTouch绑定:

[BaseType(typeof(UITableViewDataSource)] 
interface KalDataSource { 
    ... 
} 

但这导致btouch错误:

error CS0534: `Kal.KalDataSource' does not implement inherited abstract member... 

失踪成员当然是GetCell和RowsInSection。我想创建一个KalDataSource的部分类实现,但仍然需要使其对虚拟消费者来定义这些方法。 HALP?

更新:澄清后,似乎不能立即绑定从其他UIKit协议“继承”的协议。我已经申请这里的错误:

https://bugzilla.xamarin.com/show_bug.cgi?id=3526

+0

你的确切命令行是什么?我尝试了一些没有问题的类似事件(一旦我在属性中添加了缺少的')' – poupou 2012-02-17 13:31:03

+0

嗯,有趣...我错过了哪些属性?用于构建的Makefile:https://gist.github.com/c40dc80b0253fd93d30b – Anuj 2012-02-17 16:41:18

+0

不缺少*属性* - 仅仅是一个关闭的缺失*括号* ;-)它对我(也可能是Miguel)起作用,因为我将它添加到我的monotouch建立(快速测试) – poupou 2012-02-17 18:10:57

回答

0

随着最新版本btouch的,你可以列出你实现的协议,在这种情况下,像这样:

[BaseType (typeof (NSObject))] 
interface KalDataSource : UITableViewDataSource { 
} 

请注意,这是使用[BASETYPE ]与NSObject这将是它的子类,而是将内联来自UITableViewDataSource的方法。

+0

错误+全面绑定在这里:https://gist.github.com/a62179321620afc38c9f – Anuj 2012-02-17 16:57:03

+0

我发布了同样的东西,我觉得不好的搜索... 我通过重新定义第二个接口在ApiDefinition.cs文件中,所以t – Kenny 2012-05-23 19:49:00