我需要我的应用程序支持 iOS 5+。lineBreakMode
由于之前的 iOS 6 中换行模式的枚举UILabel
类型为UILineBreakMode
,并且它是NSLineBreakMode
iOS 6+ 的类型,因此检查当前运行的 iOS 版本以确定要使用的类型的最佳(或更正确)方法应该是什么? 直接做类似的事情是正确的[[UIDevice currentDevice] systemVersion]
,还是有更好的方法?
谢谢!
我需要我的应用程序支持 iOS 5+。lineBreakMode
由于之前的 iOS 6 中换行模式的枚举UILabel
类型为UILineBreakMode
,并且它是NSLineBreakMode
iOS 6+ 的类型,因此检查当前运行的 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;
}