When i ran my iOS 6 Project on an older xCode using iOS 5.0. It issues warning and fire exception on executing project.
Property 'window' requires method 'window' to be defined - use @synthesize , @dynamic or provide a method implementation
what is the science behind it ? why do i need to explicitly add @synthesize in 5.0. while it works fine in iOS 6.
This has nothing to do with iOS 6 or iOS 5. This has to do with the version of the compiler used in Xcode. The latest versions of the compiler, used in the latest version of Xcode, support many new features not found in older versions of the Objective-C compiler. One of those features is no longer needing an explicit
@synthesizestatement. Once you take advantage of these newer features, you can’t use an older version of the compiler to compile your code.So now the question becomes – why are you trying to build this project in an older version of Xcode? What is your goal? Why not use the latest Xcode and simply change the project’s Deployment Target to iOS 5.0 and leave the Base SDK as “latest”.