【问题标题】:an unexpected error while writing a piece of code from Swift programming by Apple(optional chaining)从 Apple 的 Swift 编程编写一段代码时出现意外错误(可选链接)
【发布时间】:2015-02-12 18:00:50
【问题描述】:

我编写了以下与 Apple 的 Swift Programming Language 相同的代码,但出现意外错误: type'()' does not conform to protocol 'boolean type' ,其位置显示在以下代码中:

class Person1 {
    var residence:Residence?
}

class Residence {
var rooms=[Room]()
var numberOfRooms:Int{
return rooms.count
}
subscript(i:Int)->Room{
    get{
        return rooms[i]
    }
    set{
        rooms[i]=newValue
    }
}
func printNumberOfRooms(){
    println("the number of rooms is \(numberOfRooms)")
}
var address:Address?
}
class Room {
var name:String
init(name:String){
    self.name=name
}
}
class Address {
var builingNumber:String?
var buildingName:String?
var street:String?
func buildingIdentifier()->String?{
    if buildingName!=nil {return buildingName}  Error:type'()' does not conform to   protocol 'boolean type'
    else if builingNumber!=nil {return builingNumber}
    else {return nil}
}
}

【问题讨论】:

标签: swift optional-chaining


【解决方案1】:

您需要在 != 运算符周围添加空格。

变化:

if buildingName!=nil

收件人:

if buildingName != nil

Swift 将 buildingName!=nil 解析为 buildingName! = nil,因此请在布尔运算符周围添加空格。

【讨论】:

  • 您对buildingNumber!=nil 也这样做了吗?情况如何更糟?
猜你喜欢
  • 2020-11-08
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 2015-10-17
  • 2014-10-25
  • 1970-01-01
  • 2021-01-29
  • 1970-01-01
相关资源
最近更新 更多