Привязка iOS: как создать привязку для класса, реализующего несколько делегатов?

Я пытаюсь сделать проект привязки, но не знаю, как привязать следующий интерфейс, который реализует три разных делегата:

@interface Integration :  NSObject<NSURLConnectionDelegate, SomeControllerDelegate, 
CLLocationManagerDelegate>
{
    id<VendorIntegrationDelegate> delegate;
    Information *Information;
    SomeController * controller;
}

@property(nonatomic,assign) id<VendorIntegrationDelegate> delegate;
@property(nonatomic,strong) Information *Information;
@property(nonatomic,strong) SomeController *controller;

@end

В ApiDefinition.cs я сделал привязку следующим образом, в которой отсутствует реализация SomeControllerDelegate и CLLocationManagerDelegate:

[BaseType (typeof (NSUrlConnectionDelegate), Delegates=new string [] { "WeakDelegate" },
Events=new Type [] { typeof (VendorIntegrationDelegate)})]
public partial interface Integration
{
    [Export ("delegate", ArgumentSemantic.Assign), NullAllowed]
    NSObject WeakDelegate { get; set; }

    [Wrap("WeakDelegate")]
    VendorIntegrationDelegate Delegate { get; set; }

    [Export ("Information", ArgumentSemantic.Retain)]
    Information Information { get; set; }

    [Export ("controller", ArgumentSemantic.Retain)]
    SomeController  Controller { get; set; }

}

Проблема, которую я обнаружил при создании этой привязки, заключается в том, что интерфейс наследуется от нескольких классов, как создать эту привязку


person DATI.Investigation    schedule 20.09.2013    source источник


Ответы (1)


Если вопрос касается SomeControllerDelegate, вы объявляете его как [Model] и без [BaseType] следующим образом:

[Model]
interface SomeControllerDelegate
{
    //...
}

//...

[BaseType (typeof (NSUrlConnectionDelegate), /*...*/]
interface Integration : SomecontrollerDelegate
{
    ...
}
person Stephane Delcroix    schedule 24.09.2013