Xamarin.ios Xamarin的绑定StickNFind无法编译
我正在尝试为StickNFind创建一个绑定,以便在基于Xamarin的项目中使用 有问题的类是Xamarin.ios Xamarin的绑定StickNFind无法编译,xamarin.ios,xamarin,Xamarin.ios,Xamarin,我正在尝试为StickNFind创建一个绑定,以便在基于Xamarin的项目中使用 有问题的类是LeDeviceManager,它继承了CBCentralManagerDelegate,后者是一个抽象类,UpdateState(m)方法不是绑定的一部分 以下是此类的Obj-C标题: interface LeDeviceManager : NSObject <CBCentralManagerDelegate> @property (nonatomic,strong) NSMutabl
LeDeviceManager
,它继承了CBCentralManagerDelegate
,后者是一个抽象类,UpdateState(m)
方法不是绑定的一部分
以下是此类的Obj-C标题:
interface LeDeviceManager : NSObject <CBCentralManagerDelegate>
@property (nonatomic,strong) NSMutableArray *devList;
@property (nonatomic) CBCentralManager *btmgr;
@property (nonatomic,strong) id <LeDeviceManagerDelegate> delegate;
- (id) initWithSupportedDevices: (NSArray *) devCls delegate: (id <LeDeviceManagerDelegate>) del;
- (void) startScan;
- (void) stopScan;
@end
我得到了这个错误:
错误CS0533:StickNFind.LeDeviceManager.UpdatedState(MonoTouch.coreblutooth.CBCentralManager)'隐藏继承的抽象成员
MonoTouch.coreblutooth.CBCentralManager.UpdatedState(MonoTouch.coreblutooth.CBCentralManager)'(CS0533)(SNF_绑定)
如何解决此问题:您好,您可以试试这个吗
[Protocol] // Added Protocol attribute
[Model]
[BaseType (typeof(NSObject))] //Changed BaseType to NSObject
public partial interface LeDeviceManager : ICBCentralManagerDelegate
{
[Export ("devList", ArgumentSemantic.Retain)]
NSMutableArray DevList { get; set; }
[Export ("btmgr")]
CBCentralManager Btmgr { get; set; }
[Export ("delegate", ArgumentSemantic.Retain)]
LeDeviceManagerDelegate Delegate { get; set; }
[Export ("initWithSupportedDevices:delegate:")]
IntPtr Constructor (NSObject[] devCls, LeDeviceManagerDelegate del);
[Export ("startScan")]
void StartScan ();
[Export ("stopScan")]
void StopScan ();
[Export ("updatedState")] [New] // Notice I changed UpdatedState to updatedState lowercase u
void UpdatedState(CBCentralManager mgr);
}
我强烈建议您阅读的绑定协议部分,您是否完成了此绑定?我需要同样的东西,如果你已经做了,我不想重新发明轮子。我确实设法克服了那个错误,但后来我在SNF SDK中遇到了另一个关于一些重复名称的错误,我放弃了。我在使用SNF时遇到了很多麻烦,我不推荐他们——他们所有的代码都非常糟糕,信标的行为不可预测,我永远无法让它们工作,他们的支持非常糟糕。
[Protocol] // Added Protocol attribute
[Model]
[BaseType (typeof(NSObject))] //Changed BaseType to NSObject
public partial interface LeDeviceManager : ICBCentralManagerDelegate
{
[Export ("devList", ArgumentSemantic.Retain)]
NSMutableArray DevList { get; set; }
[Export ("btmgr")]
CBCentralManager Btmgr { get; set; }
[Export ("delegate", ArgumentSemantic.Retain)]
LeDeviceManagerDelegate Delegate { get; set; }
[Export ("initWithSupportedDevices:delegate:")]
IntPtr Constructor (NSObject[] devCls, LeDeviceManagerDelegate del);
[Export ("startScan")]
void StartScan ();
[Export ("stopScan")]
void StopScan ();
[Export ("updatedState")] [New] // Notice I changed UpdatedState to updatedState lowercase u
void UpdatedState(CBCentralManager mgr);
}