run-time vs. compile-time iPhone version check

Viewed 5945

What's the difference between run-time, e.g., [[UIDevice currentDevice] systemVersion], and compile-time, e.g., __IPHONE_OS_VERSION_MIN_REQUIRED checking? When should you one over the other?

Is__IPHONE_OS_VERSION_MIN_REQUIRED just a variable set in Build Settings?

I've read the answers to How to target a specific iPhone version? and other related questions listed below.

But, I just noticed that __IPHONE_OS_VERSION_MIN_REQUIRED = 30200 when I build & run on iPhone (4.3.1) with Xcode 4. Why?

When you submit your code to Apple, do they compile a version of it for each version of the iPhone that exists, setting __IPHONE_OS_VERSION_MIN_REQUIRED accordingly?

That way, you could inspect __IPHONE_OS_VERSION_MIN_REQUIRED, and know what iOS version is running the code.

Related Questions:

3 Answers
Related