I'll pose this question with Swift as a reference, but I know that it applies to many other languages/frameworks/libraries.
Swift answers are almost always made far less useful because questions often extend back to much earlier versions of the language. Answers for Swift 2 or 3 very often are the accepted answer, and have accumulated many upvotes.
Because Apple effectively enforces the use of Swift versions, this is not the same thing as earlier versions of other languages, because almost nobody is coding in Swift 3 – or any other version prior to the current one.
At a minimum, it seems that a requirement that questions about Swift (and similarly controlled languages) should have a version number flag associated to be posted. Retroactively, a date filter that is automatically applied would allow most answers to be assigned the most likely version they belong to.
Extending that, votes for an answer should probably expire or lose value after a major revision of the language.
Responders informally provide headings to identify what version of the language their answers are for. These could be formalized, using a heading and a tag to identify them. This would at least make them searchable.
The best solution would probably provide the answers in tabs that are marked by version, although in reality, "Current" and "Older Versions" would be all that's required.
As it is, this basic flaw in the way Stack Overflow fails to handle these problems not only produces a lot of misleading and even destructive information, they also point to a future where the cruft has taken over the valuable. It needs a solution.