【问题标题】:Swift Cannot convert value of type CBPeripheral to expected argument typeSwift 无法将 CBPeripheral 类型的值转换为预期的参数类型
【发布时间】:2017-06-09 09:46:33
【问题描述】:

我的代码:

func didDiscoverBLE(_ peripheral: CBPeripheral!, address: String!, rssi: Int32) {


DispatchQueue.main.async(execute: {() -> Void in

                    // Handle Discovery
                    self.arrayPeripehral.contains(where:peripheral)
                        return
                    })
            self.arrayPeripehral.append(peripheral)
            let title: String = "\(peripheral.name) \(address) (RSSI:\(rssi))"
            self.arrayPeripheralName.append(title)

在这一行我有一个问题:

self.arrayPeripehral.contains(where:peripheral)
    return
})

有人有想法吗?


这是我从客观 c 复制到 swift 的代码,但遇到了这个错误

 - (void)didDiscoverBLE:(CBPeripheral *)peripheral address:(NSString *)address rssi:(int)rssi
    {
        dispatch_async(dispatch_get_main_queue(), ^{

            // Handle Discovery
            if([arrayPeripehral containsObject:peripheral])
                return;

            [arrayPeripehral addObject:peripheral];

            NSString * title = [NSString stringWithFormat:@"%@ %@ (RSSI:%d)", peripheral.name, address, rssi];

            [arrayPeripheralName addObject:title];

【问题讨论】:

  • 能否出示arrayPeripehral的声明。
  • var arrayPeripehral = [Any]()var arrayPeripheralName = [Any]()
  • 我正在使用框架 obj c,并且我有桥接文件,并且我声明了 peripheral var peripheral: CBPeripheral? var arrayPeripheral = [Any]() var arrayPeripheralName = [Any]()
  • 请编辑您的问题,而不是在 cmets 中添加信息。

标签: objective-c swift cbperipheral


【解决方案1】:

arrayPeripehral 的类型从[Any] 更改为[CBPeripheral],这将使编译器对其类型有更多了解,然后像这样使用contains(where:) 来检查数组是否包含对象。

var arrayPeripehral = [CBPeripheral]()

现在使用contains(where:)这种方式来检查数组是否包含对象。

if self.arrayPeripehral.contains(where: { $0.name == peripheral.name }) {
    return
}

还将arrayPeripheralName 的类型声明从[Any] 更改为[String],因为您只在其中附加String 对象。

var arrayPeripheralName = [String]()

【讨论】:

猜你喜欢
  • 2017-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
  • 2020-11-23
相关资源
最近更新 更多