Pri vsakem klicu v dokumentaciji ti piše, na kateri verziji sistema je bil dodan. Tvoja naloga (če želiš backwards compatible app) pa je ta, da preprečiš izvajanje novih klicev na starih deviceih.
Če te zanima obstoj celotnega classa na sistemu, ki ga v starih verzijah še ni bilo imaš opcijo uporabiti NSClassFromString:
NSClassFromString
Obtains a class by name.
Class NSClassFromString (
NSString *aClassName
);
Parameters
aClassName
The name of a class.
Return Value
The class object named by aClassName, or nil if no class by that name is currently loaded. If aClassName is nil, returns nil.
Availability
Available in iOS 2.0 and later.
See Also
NSStringFromClass
NSProtocolFromString
NSSelectorFromString
Related Sample Code
MailComposer
Declared In
NSObjCRuntime.h
Primer uporabe:
NSString *className = @"NekNovRazredKiNeObdtajaPovsod";
if(NSClassFromString(className)) {
// razred obstaja in ga lahko uporabim
}
else {
// prste stran, sicer boš sesul aplikacijo!!
}
Če te pa zanima obstoj nove metode v starem razredu, ki je že obstajal pa lahko uporabiš "- (BOOL)respondsToSelector:(SEL)aSelector" za instance objects, ali pa "+ (BOOL)instancesRespondToSelector:(SEL)aSelector" za class objects.