In the real world, we don't always know the answer to a question, and problems can occur if we assume that we will always know the answer. The same is true in programming languages, especially when dealing with external systems that we may not control. In many languages, there is no way to call out that we might not know a value at any given time. This can lead to either fragile code or lots of checks to ensure a value exists before it can be used.
The term nil or null is used by programming languages to denote the absence of a value. Note that this is not the same as the number 0 or the empty (zero length) string "". Swift uses nil to indicate the absence of a value. Therefore, assigning nil to a value will remove any value that is currently assigned.
With a focus on Swift being type-safe and making it easier to write safe code, this ambiguity had to be addressed, and the Swift language does this with something called optionals...