绑定iOS库 - 在NSClassFromString之后调用时,conformsToProtocol失败

时间:2014-10-13 08:35:55

标签: c# objective-c xamarin.ios xamarin

我设法成功绑定了一个本机iOS库,但是当我运行时,我遇到一个问题,当尝试验证NSClassFromString查找的一个类中的协议实现时,conformsToProtocol验证失败。

obj-C代码:

Class cl = NSClassFromString("MyProtocolClass");
if (cl == Nil) {
    // Can't instantiate class
    result =  NO;
} else {
    // Check class is compatible with the protocol
    if (![cl conformsToProtocol:@protocol(MyProtocol)]) { <------ FAILS HERE
    //class does not implement MyProtocol
        result =  NO; 
    }
}

协议代码:

@protocol MyProtocol <NSObject>
@optional
- (void)method1;
@end

我的装订代码:

[Model, BaseType(typeof(NSObject))]
public partial interface MyProtocol
{
    [Export("method1")]
    void Method1();
}

我的课程:

[Adopts("MyProtocol")] 
[Register ("MyProtocolClass")]
public class MyProtocolClass : MyProtocol
{
}

我认为NSClassFromString没有考虑我在C#中实现的协议。

任何想法如何使这项工作?

由于

1 个答案:

答案 0 :(得分:2)

Xamarin.iOS当前不支持将C#中定义的协议导出到Objective-C。

它是未来版本的路线图,但确切时尚未确定。