3
我试图做一个结合了StickNFind在基于Xamarin项目使用。为Xamarin绑定StickNFind编译失败
有问题的类是LeDeviceManager
,它继承了CBCentralManagerDelegate
,这是一个抽象类,而UpdateState(m)
方法不是绑定的一部分。
下面是这个类的对象 - 标题:
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
这是结合我拿出,用客观记号笔沉重的援助:
[Model, BaseType (typeof(CBCentralManagerDelegate))]
public partial interface LeDeviceManager
{
[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] // Added as suggested by another SO post, also tried [Abstract]
void UpdatedState(CBCentralManager mgr);
}
而且我得到这个错误: 错误CS0533:StickNFind.LeDeviceManager.UpdatedState(MonoTouch.CoreBluetooth.CBCentralManager)' hides inherited abstract member
MonoTouch.CoreBluetooth.CBCentralManagerDelegate.UpdatedState(MonoTouch.CoreBluetooth.CBCentralManager)”(CS0533)(SNF_Binding)
如何解决这个问题:
绑定协议部分没有完成这个绑定?我需要同样的东西,如果你已经做到了,不用重新发明轮子。 –
我确实设法让它通过了那个错误,但是后来我又发现了一些关于SNF SDK中重复名称的错误,我放弃了。我经历了一大堆与SNF麻烦去了,我不建议他们 - 他们所有的代码是非常糟糕的,信标行为无法预测,我永远无法使他们的工作,他们的支持是非常糟糕。 –