Zol*_*tók 3 objective-c deprecated ios
因此,对于每个新操作系统,都会声明一组方法已被弃用.我奇怪的是,如果我想还是支持的iOS5和iOS6的我一定要同时使用过时的和替代方法,像UILabel的minimumScaleFactor了minimumFontSize.
如果我更换myLabel.minimumFontSize到myLabel.minimumScaleFactor我的应用程序将崩溃在iOS5.
因此,我使用ifwith -respondsToSelector:来查明操作系统是5还是6并使用minimumScaleFactor或minimumFontSize相应.
问题是我可能不得不在我的代码中编写一堆ifs并且respondsToSelectors感觉很愚蠢.
有没有更好的方法来处理折旧?
我创建了可以在任何ios中使用的函数:
void AbsSdk30_upg60_UILabel_setMinimumScaleFactor(UILabel * label, CGFloat minimumScaleFactor) {
if ([label respondsToSelector: @selector(setMinimumScaleFactor:)]) {
[label setMinimumScaleFactor: minimumScaleFactor];
}
else {
const CGFloat curFontSize = label.font.pointSize;
const CGFloat fontSize = (0.0 == curFontSize) ? [UIFont labelFontSize] : curFontSize;
[label setMinimumFontSize: fontSize * minimumScaleFactor];
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3142 次 |
| 最近记录: |