【发布时间】:2019-08-09 14:54:55
【问题描述】:
我正在开发一个需要一些原生模块的 react-native 项目。其中之一是一个蓝牙模块,它允许我访问一些 CSRGaia 方法。最终,我希望能够读取 PS 键上的 eq 值,以便我可以将均衡器设置为相应的值。我对 Objective-C 几乎一无所知
目前有一个方法是这样的:
RCT_EXPORT_METHOD(setEQValues:(NSArray *)values callback:(RCTResponseSenderBlock)callback)
{
CSRPeripheral *connectedPeripheral = [CSRConnectionManager sharedInstance].connectedPeripheral;
if( connectedPeripheral == nil )
{
callback(@[DISCONNECTED]);
return;
}
[[CSRGaia sharedInstance] setEQValues:values];
}
这没有问题。但是,当我尝试编写自己的
RCT_EXPORT_METHOD(getUserEQ: (NSArray *)values callback:(RCTResponseSenderBlock)callback)
{
CSRPeripheral *connectedPeripheral = [CSRConnectionManager sharedInstance].connectedPeripheral;
if( connectedPeripheral == nil)
{
callback(@[DISCONNECTED]);
return;
}
[[CSRGaia sharedInstance] getUserEQ: values];
}
我收到以下错误:
“CSRGaia”没有可见的@interface 声明选择器“getUserEQ:”
我仔细检查了 CSRGaia.m 文件以确认这两种方法都存在。
- (void)setEQValues:(NSArray *)values {
NSMutableData *payload = [[NSMutableData alloc] init];
for( NSNumber *value in values ) {
uint8_t hex = [value unsignedCharValue];
[payload appendBytes:&hex length:1];
}
[self sendCommand:GaiaCommand_SET_HEP_EQ_PSKEY
vendor:CSR_GAIA_VENDOR_ID
data:payload];
}
- (void)getUserEQ {
[self sendCommand:GaiaCommand_GetUserEQControl
vendor:CSR_GAIA_VENDOR_ID
data:nil];
}
【问题讨论】:
-
这是实现。显示
CSRGaia的界面。它以@interface OSRGaia开头,通常位于标题中。 (后缀为.h的文件)
标签: objective-c methods bluetooth