🚦
iOSシミュレーター環境のみコードを実行する
デバッグなどの都合でiOSシミュレーターで動かしている場合だけコードを事項したいということがある。
その場合は以下を書くことで実行が可能。
#if targetEnvironment(simulator)
// ここにiOSシミュレーター環境でのみ処理したいことを書く
#endif
iOSシミュレーターと実機の環境で処理を分けたいときは以下のように書く。
#if targetEnvironment(simulator)
// ここにiOSシミュレーター環境でのみ処理したいことを書く
#else
// ここに実機でのみ処理したいことを書く
#endif
余談だが、targetEnvironment(macCatalyst)
と記載すると、Mac Catalystで構築したアプリケーションにおいてmacOS環境でのみ処理するということも可能。
#if targetEnvironment(macCatalyst)
// ここにmacOS環境でのみ処理したいことを書く
#else
// ここにmacOS環境以外で処理したいことを書く
#endif
上記に関してはAPIの違いによる処理の切り分けに使用することができる。
iOSやiPadOSにはないAPIが多く存在するmacOSでのみ動くコードを実行する時に重宝するはずだ。
ref: Creating a Mac Version of Your iPad App | Apple Developer Documentation
ref: Statements — The Swift Programming Language (Swift 5.5)
Discussion