d.felber
d.felber

Reputation: 5418

Can deprecated code have negative effects when using a deployment target where the code is not deprecated?

Let's say I have a Xcode project with the deployment target of 8.0 and iOS 10 got released. The app gets build and released - the deployment target stays the same.

My questions are:

  1. Do the newly added deprecations impact the stability of the app for a device running iOS 10?
  2. Do I have to adjust my implementations to get rid of the deprecated code even Xcode does not show me any warnings? (the warnings when I would set the deployment target to iOS 10)

Currently I only add if #available checks for deprecated code that Xcode shows as warnings.

Upvotes: 0

Views: 246

Answers (2)

Matt Fellows
Matt Fellows

Reputation: 6532

Yes and no... Normally code is deprecated because it's no longer maintained, and or has known issues. Nothing should directly change for deprecated code between the time before it was deprecated and afterwards, so nothing should reduce stability etc. However, the fact that it is deprecated should make you keener to change it to the recommended replacement.

It should probably be noted that deprectaed methods tend to not disappear, despite that being the intention of deprecation. As the backwards compatibility would be broken, unless there are very serious security / privacy concerns, it's not likely a deprecated method would be removed.

It should also be noted that unlikely things happen with a greater frequency than one would expect ;)

Upvotes: 1

gnasher729
gnasher729

Reputation: 52632

"Deprecated" means it will disappear in a future version, so you should replace the code as soon as possible.

There are many deprecated methods that are trivial to replace, or almost trivial with the replacement having better functionality; in those cases you should replace the method now.

There are cases where there is non-trivial effort. Worse, there are some cases where a method may be deprecated in iOS 10 with a nice replacement method - which isn't available in iOS 8. In the first case, I'd replace it when you have some spare time, as soon as possible. In the latter case, I'd replace it as soon as I don't need to support anything where the replacement method is not available.

Upvotes: 0

Related Questions