【问题标题】:Arc Semantic Issue: No visible @interface for 'CSRGaia' declares the selector 'getUserEQ:'弧语义问题:“CSRGaia”没有可见的@interface 声明选择器“getUserEQ:”
【发布时间】: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


【解决方案1】:

你正在调用这个方法:

'getUserEQ:'

注意两点冒号

它与方法不同

'getUser'

没有冒号

在你的 .m 文件中只有

- (void)getUserEQ {}

我猜你想使用 setter 方法,而不是

- (void)setEQValues:(NSArray *)values{}

像这样:

[[CSRGaia sharedInstance] setEQValues: values];

两个都加

- (void)getUserEQ;
- (void)setEQValues:(NSArray *)values;

在 CSRGaia.h 文件中

之间

@interface OSRGaia

@end

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-17
    • 2013-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    相关资源
    最近更新 更多