2

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

谢谢!

4

2 回答 2

1

运行时不需要检查iOS版本,枚举值相同,编译后的代码从UILineBreakMode移到时不会改变NSLineBreakMode

enum {

NSLineBreakByWordWrapping = 0,
   NSLineBreakByCharWrapping,
   NSLineBreakByClipping,
   NSLineBreakByTruncatingHead,
   NSLineBreakByTruncatingTail,
   NSLineBreakByTruncatingMiddle
};
typedef NSUInteger NSLineBreakMode


typedef enum {
   UILineBreakModeWordWrap = 0,
   UILineBreakModeCharacterWrap,
   UILineBreakModeClip,
   UILineBreakModeHeadTruncation,
   UILineBreakModeTailTruncation,
   UILineBreakModeMiddleTruncation,
} UILineBreakMode;
于 2013-10-29T07:50:20.497 回答
0

如果您想检查操作系统版本,可以使用以下代码:

+ (NSInteger)OSVersion
{
    static NSUInteger _deviceSystemMajorVersion = -1;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        _deviceSystemMajorVersion = [[[[UIDevice currentDevice] systemVersion] componentsSeparatedByString:@"."][0] intValue];
    });
    return _deviceSystemMajorVersion;
}
于 2013-10-29T08:08:41.130 回答