我设法成功绑定了一个本机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#中实现的协议。
任何想法如何使这项工作?
由于
答案 0 :(得分:2)
Xamarin.iOS当前不支持将C#中定义的协议导出到Objective-C。
它是未来版本的路线图,但确切时尚未确定。