Лучший способ поддержки функциональности для предыдущих версий iOS и устаревших методов - PullRequest
2 голосов
/ 28 марта 2012

stretchableImageWithLeftCapWidth: topCapHeight: метод, используемый для изменения размера изображения (iOS ниже 5.0), но в iOS 5 этот метод устарел, а в iOS 5 появился новый resizableImageWithCapInsets:Какой лучший способ поддержать изменение размера изображений в iOS ниже 5 и выше 5?Первое, что я знаю, это использовать метод responseToSelector.Но, возможно, кто-то знает другие примеры.

1 Ответ

0 голосов
/ 28 марта 2012

Поддерживать версии, как правило, довольно просто, единственная ловушка, которой следует избегать, - это использовать условное построение, чтобы решить, какие функции поддерживать, так как это потребует от вас использования определенного двоичного файла для каждой версии.

Я бы использовалчто-то вроде этого:

NSString* featureVersion = @"5.0";
NSString* systemVersion = [[UIDevice currentDevice] systemVersion];
if ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending)
{
     [object someIOS5SpecificMethod];
}
else
{
     [object alternateMethod];
}

Чтобы использовать классы, зависящие от версии, вы всегда можете использовать что-то похожее на:

Class class = NSClassFromString(@"iOS5OnlyClass");
if (class)
{
   id object = [[class alloc] init];
}
...