Search code examples
ios5ios4backwards-compatibility

iOS 4 and iOS 5 backward compatibility


I have a question regarding iOS 4 and 5. I am really confused and hope someone will clear it out for me.

I am using iOS 5 SDK in my application. If i use the iOS 5 Twitter integration which is provided by apple, will it run on an iPhone that has iOS 4 installed ?

Does backward compatibility work ?

I have used Twitter as an example, but does backward compatibility really work with iOS 5 ?


Solution

  • If you set up your app properly, so that it can be run on devices running iOS 4 without crashing, then: yes, it will run on an iPhone that has iOS 4 installed.

    Your app should implement logic such that the Twitter API is used when the app is being run on an iOS 5 device. When the app is running on an iOS 4 device, you can conditionally choose not to use the Twitter API.

    Instead, you can use a different Twitter library (like MGTwitterEngine, or your own) - or just exclude Twitter functionality for those users.

    To check whether the TWRequest Class exists, use NSClassFromString.

    Class twRequestClass = NSClassFromString(@"TWRequest");
    if (twRequestClass == nil) {
        // TWRequest does not exist on this device (running iOS version < 5.0)
        // ... do something appropriate ...
    } else {
        TWRequest *twRequest = [[twRequestClass alloc] init];
        // ^ I didn't look up the proper initializer, so you should change that line if necessary
        // ...
    }