質問

がコンパイラの指令に利用できるコンパイルコンテンツのコードの場合に的を絞った、シミュレータに対して私の装置です。のようなもの:

# IF SIMULATOR
[self.imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
# ELSE
[self.imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
# END

編集

直接リンクdocsに入ります。

役に立ちましたか?

解決

#if TARGET_IPHONE_SIMULATOR
[self.imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
#else
[self.imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
#endif

他のヒント

アップデート:(非推奨/廃止) これは数年間のみ機能し、現在は機能しません。(10年以上後)

記録のために、Apple が公式サンプル コードの一部で使用している別のメソッドを次に示します。

#if TARGET_CPU_ARM
  // Only executes on an iPhone or iPod touch device
  [self.imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera];
#else
  // Only executes on the Simulator
  [self.imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];
#endif

をお探しの方に現代の迅速なソリューションでは、(新)プラットフォームの状態 targetEnvironment に答えます。たとえば、次のようになります。

#if targetEnvironment(simulator)
self.imagePicker.sourceType = .photoLibrary
#else
self.imagePicker.sourceType = .camera
#endif 

対象環境の基盤状態 機能紹介されました SE-0190 とが可能で 迅速な4.1.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top