Ages ago, I had an Objective-C application crash on a new version of OS X. The issue was that my subclass of an Apple class had a property, but Apple added a property with the same name. So to avoid this issue in the future, I started to prefix/suffix all my code to guarantee uniqueness.
Fast-forward to Swift. When starting out, I kept the suffix scheme going. A contrived example:
class IIMainViewController : UITableViewController { // custom type prefix
var refreshControl_II : UIControl! // custom property suffix
If I drop the _II suffix, I'll get an appropriate error: "Property 'refreshControl' with type 'UIControl?' cannot override a property with type 'UIRefreshControl?'
But let's pretend that refreshControl wouldn't have been added to UITableViewController until iOS 13. What would happen with a Swift app with a 'refreshControl' property in the table view subclass when running on iOS 13?
In all the namespacing articles I've read, I haven't come accross this specific example.