2

iOS 5 以降をサポートするアプリが必要です。lineBreakMode以前の iOS 6 の改行モードの列挙UILabel型はタイプUILineBreakModeでありNSLineBreakMode、iOS 6+ のタイプであるため、使用するタイプを決定するために現在実行中の iOS バージョンを確認する最善の (またはより正確な) 方法は何ですか? ? のようなことを直接行うのは正しいですか[[UIDevice currentDevice] systemVersion]、それとももっと良い方法がありますか?

ありがとう!

4

2 に答える 2

1

実行時に iOS のバージョンを確認する必要はありません。列挙型の値は同じです。コンパイルされたコードは から に移行しても変更されませんUILineBreakModeNSLineBreakMode

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

OS のバージョンを確認する場合は、次のコードを使用できます。

+ (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 に答える