I have created binding library through objective C framework, there is a class that are extending NsObject type of other interface(KsEvent), in Xamarin IOS, getting error during cast can't convert type of KSMEvent to KsEvent.
ApiDefinitions:
// @interface KSMEvent : NSObject <KsEvent> [BaseType(typeof(NSObject))] interface KSMEvent : KsEvent { // @property NSDictionary * _Nullable userInfo; [NullAllowed, Export("userInfo", ArgumentSemantic.Assign)] NSDictionary UserInfo { get; set; } // -(instancetype _Nonnull)initWithName:(NSString * _Nonnull)name object:(id _Nullable)object userInfo:(NSDictionary * _Nullable)userInfo; [Export("initWithName:object:userInfo:")] IntPtr Constructor(string name, [NullAllowed] NSObject @object, [NullAllowed] NSDictionary userInfo); } [BaseType(typeof(NSObject))] [Protocol, Model] interface KsEvent { // @required -(NSString * _Nonnull)getName; [Abstract] [Export("getName")] string Name { get; } // @required -(id _Nullable)getObject; [Abstract] [NullAllowed, Export("getObject")] NSObject Object { get; } // @required -(NSDictionary * _Nullable)getUserInfo; [Abstract] [NullAllowed, Export("getUserInfo")] NSDictionary UserInfo { get; } }
Xamarin IOS:
KSMEvent kSMEvent = new KSMEvent(); KsEvent ksEvent = (KsEvent)kSMEvent;
Error: Cannot convert type KSMEvent to KsEvent.