简体   繁体   中英

I am getting a warning comparing my OPTIONAL value to not-nil will always return true

I have declared a type called "JournalEntry" as an optional and have it set to nil. Then when the VC loads I test to make sure that the object has been injected before trying to use it, but I get an error that says "Comparing non-optional value of type 'JournalEntry' to nil always returns true".

But I have it set as an optional and to nil...

Here's the code:

class AddJournalEntryVC: UIViewController, UITextViewDelegate {

    var willEdit:Bool?
    var entryForEdit:JournalEntry? = nil

    override func viewDidLoad() {
        super.viewDidLoad()


        if isEditing {
            guard let entry = entryForEdit, entry != nil else{ //Comparing non-optional value of type 'JournalEntry' to nil always returns true
                return
            }
            dateLabel.text = entry.dateString!
            timeLabel.text = entry.timeString!
            timestamp = entry.timestamp!
        }
    }

Where has my thinking gone wrong? Thank you.

Just remove the entry != nil clause and it will work as you require. The if let statement that proceeds it performs the not-nil check already.

guard let entry = entryForEdit else {
    return
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM