我需要我的应用程序支持 iOS 5+。由于以前的iOS 6中换行UILabel
模式的枚举lineBreakMode
是UILineBreakMode
类型,并且对于iOS 6 +属于NSLineBreakMode
类型,检查当前运行的iOS版本以确定要使用的类型的最佳(或更正确)方法应该是什么?直接做[[UIDevice currentDevice] systemVersion]
这样的事情是正确的,还是有更好的方法?
谢谢!
运行时不需要
检查 iOS 版本,枚举值相同,从 UILineBreakMode
移动到 NSLineBreakMode
时编译的代码不会更改
enum {
NSLineBreakByWordWrapping = 0,
NSLineBreakByCharWrapping,
NSLineBreakByClipping,
NSLineBreakByTruncatingHead,
NSLineBreakByTruncatingTail,
NSLineBreakByTruncatingMiddle
};
typedef NSUInteger NSLineBreakMode
typedef enum {
UILineBreakModeWordWrap = 0,
UILineBreakModeCharacterWrap,
UILineBreakModeClip,
UILineBreakModeHeadTruncation,
UILineBreakModeTailTruncation,
UILineBreakModeMiddleTruncation,
} UILineBreakMode;
如果您想
检查操作系统版本,您可以使用以下代码:
+ (NSInteger)OSVersion
{
static NSUInteger _deviceSystemMajorVersion = -1;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
_deviceSystemMajorVersion = [[[[UIDevice currentDevice] systemVersion] componentsSeparatedByString:@"."][0] intValue];
});
return _deviceSystemMajorVersion;
}