Base SDK が 7.0 以降の場合にのみ、コードの特定の部分をコンパイルするプリプロセッサ マクロはありますか? 「__IPHONE_7_0」で定義された定数は、iOS 開発ターゲットにリンクされているようです (ベース SDK にはリンクされていません)。
iOS 7 と iOS 6.1 がインストールされた XCode 5 を使用しています。
私がこれを尋ねている理由は、私が現在 iOS 6 から iOS 7 にアプリを移行しているためです。調整することがかなりありますが、現在も基本 SDK として iOS 6.1 を使用してアプリをコンパイルしたいと考えています (および開発ターゲット iOS 6.0 を使用) ですが、iOS 7 SDK でコンパイルするたびに必要になるコードを既に追加したいと考えていますが、ベース SDK が iOS 6.1 の場合はコンパイルされません。
例:
if ([_tableView respondsToSelector:@selector(setSeparatorInset:)]) {
[_tableView setSeparatorInset:UIEdgeInsetsZero];
}
上記のコードは、setSeparatorInset が UITableView に対して定義されていないことを訴えているため、iOS 6.1 ベース SDK ではコンパイルされません。したがって、このコードをプリプロセッサ ディレクティブ内に、条件付きでベース SDK に含めたいと思います。