我编写了下面一段代码,它与苹果公司的Swift编程语言相同,但出现了一个意外错误,错误是:类型“()”不符合协议“布尔类型”,其位置显示在以下代码中:

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}
}
}

最佳答案

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

if buildingName!=nil

致:
if buildingName != nil

Swift正在将buildingName!=nil解析为buildingName! = nil,因此可以通过在布尔运算符周围添加空格来帮助它。

关于swift - Apple编写来自Swift编程的一段代码时发生意外错误(可选链接),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27470518/

10-12 02:45