This can happen when you try to run code built for iOS 7 Base SDK on Xcode 4.x, or if you compile against an older Base SDK in Xcode 5.
The solution is to define what isn’t defined manually using a Macro. Add this to every class that’s complaining and you should be fine:
#define NSFoundationVersionNumber_iOS_6_1 993.00
This tells the compiler to define the value if it’s not there, so it has no reason to complain.
How do I know that I’ve got more than one Base SDK?
You can check this either by connecting a device, and see if it appears twice. If it does, then it means Xcode lets you choose which SDK to compile against (the newest one is at the bottom):
Alternatively you can check under Build Settings, find a drop-down menu called Base SDK. I’ve explained more about how to install an older Base SDK here: http://pinkstone.co.uk/how-to-use-ios-6-legacy-look-in-xcode-5/
Kudos to this unrelated thread on GitHub:
Full list of all version numbers in Apple’s Foundation Constants Reference Guide: