提问人:VK1 提问时间:3/19/2019 更新时间:3/20/2019 访问量:148
Arc 语义问题:没有“CSRGaia”的可见@interface声明选择器“getUserEQ:”
Arc Semantic Issue: No visible @interface for 'CSRGaia' declares the selector 'getUserEQ:'
问:
我正在做一个需要一些原生模块的 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];
}
答:
0赞
meronix
3/20/2019
#1
您正在调用此方法:
'getUserEQ:'
注意 2 个点冒号
它与方法不同
“获取用户”
无冒号
而在你的.m文件中,只有
- (void)getUserEQ {}
我猜你想改用 setter 方法
- (void)setEQValues:(NSArray *)values{}
喜欢这个:
[[CSRGaia sharedInstance] setEQValues: values];
无论如何都要添加
- (void)getUserEQ;
- (void)setEQValues:(NSArray *)values;
在 CSRGaia.h 文件中
之间
@interface OSRGaia
和
@end
评论
CSRGaia
@interface OSRGaia