I have this code in Swift:
guard let user = username else{
return nil
}
But I'm getting the following errors:
Nil is incompatible with return type String
Any of you knows why or how I return nil in this case?
I'll really appreciate your help
you have to tell the compiler that you want to return nil. How do you that? by assigning '?' after your object. For instance take a look at this code:
func newFriend(friendDictionary: [String : String]) -> Friend? {
guard let name = friendDictionary["name"], let age = friendDictionary["age"] else {
return nil
}
let address = friendDictionary["address"]
return Friend(name: name, age: age, address: address)
}
Notice that i had to tell the compiler that my Object Friend that i'm returning is an optional 'Friend?' other wise it spill an error on me
Does your function declare an optional return type?
func foo() -> String? { ...
NOTE
The concept of optionals doesn’t exist in C or Objective-C. The nearest thing in Objective-C is the ability to return nil from a method that would otherwise return an object, with nil meaning “the absence of a valid object.”
来源:https://stackoverflow.com/questions/33686976/swift-nil-is-incompatible-with-return-type-string