2012-02-17 268 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