I would like to write an app which can be run on iOS 3.1.3 up to iOS 4.1. I know how to set up the deployment target and the base SDK.
After reading the Apple docs it heavily relies on checking if the class is available and/or if an instance responds to a specific selector.
Now my questions:
- What happens if Apple made a class public from 3.1.3 to 4.x ? When just checking for the class name it would be available on iOS 3.1.3, too? So on this version I would be using a private API, which I do not want. How would you check that? Is this really a problem or am I worrying too much?
- Would you also use preprocessor symbols, which are defined by the iOS version?
- Which architecture should I choose armv6 or armv7? I think armv6 runs on armv7 as well, is that correct?
- Do I get any help from the compiler if I am using something in my code that is not available in iOS 3.1.3? Does it get checked?
- Are there any prominent pitfalls I should know about?
I already watched session 130 of WWDC10 "Future-proofing your app" so the things said there are known.
Thank you.