【问题标题】:initializer for conditional binding must have optional type条件绑定的初始化程序必须具有可选类型
【发布时间】:2017-06-28 07:29:52
【问题描述】:

我想创建一个 BLE 扫描仪,并在 developer.apple.com 上关注 Start Developing iOS Apps (Swift),

当会话“创建表格视图”时,我在这里遇到错误,

BLEMember.swift

import UIKit

class BLEMember {
    var rssi: Int
    var uuid: String

    init (rssi:Int, uuid:String){
      self.rssi = rssi
      self.uuid = uuid
    }
}

BLEScanTableViewController.swift

...
    private func loadBLEMembers() {

    var members = [BLEMember]()
    guard let member1 = BLEMember(rssi: 65, uuid: "testing ble 1") else {
        fatalError("Unable to instantiate meal1")
    }

    guard let member2 = BLEMember(rssi: 35, uuid: "testing ble 2") else {
        fatalError("Unable to instantiate meal2")
    }

    guard let member3 = BLEMember(rssi: 45, uuid: "testing ble 3") else {
        fatalError("Unable to instantiate meal2")
    }

    members += [member1, member2, member3]
}

然后发生错误,

 initializer for conditional binding must have optional type, not "BLEMember"

如何解决?谢谢!

【问题讨论】:

    标签: swift


    【解决方案1】:

    let member1 = BLEMember(rssi: 65, uuid: "testing ble 1") 总是成功。这里不需要使用守卫!

    private func loadBLEMembers() {
    
        var members = [BLEMember]()
        let member1 = BLEMember(rssi: 65, uuid: "testing ble 1")
    
        let member2 = BLEMember(rssi: 35, uuid: "testing ble 2")
    
        let member3 = BLEMember(rssi: 45, uuid: "testing ble 3")
    
        members += [member1, member2, member3]
    
    }
    

    【讨论】:

    • 在此处阅读有关guard 的更多信息!
    猜你喜欢
    • 2015-09-11
    • 2019-03-11
    • 2017-01-22
    • 2018-03-25
    • 2016-01-08
    • 2017-04-08
    相关资源
    最近更新 更多