警告相当于#pragma poison

时间:2015-11-12 19:29:48

标签: ios xcode preprocessor crashlytics

我使用crash函数来测试Crashlytics集成,但我显然不想在应用程序中发送该代码。

可能会使标识符中毒,以便当前或将来的任何使用都会导致错误:

#pragma GCC poison crash

是否有等效的#pragma指令在使用标识符时发出警告?我希望能够构建代码库,同时保留一个需要注意的可见指示符。

2 个答案:

答案 0 :(得分:3)

这应该可行,现在_Pragma可用。您可以#pragma GCC poison使用#define生成警告,而不是使用crash #pragma GCC warning标识#define DO_PRAGMA(x) _Pragma(#x) #define WARN(x) DO_PRAGMA(GCC warning #x) #define crash WARN("crash" used) crash

crash

前两个宏只是减少了引号的工作量。请注意_Pragma扩展为自身(以及warning),这是有效的,因为C预处理器不会在其自己的扩展中扩展令牌。

如果您将error更改为-Werror,则会收到错误。您可以通过使用更多宏来轻松安排更改所有这些,或者您可以使用 public void doTakePhotoAction() { Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); // tempdirectory String url = "tmp_" + String.valueOf(System.currentTimeMillis()) + ".jpg"; mImageCaptureUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), url)); Log.e("mImageCaptureUri", mImageCaptureUri.toString()); intent.putExtra(MediaStore.EXTRA_OUTPUT, mImageCaptureUri); this.startActivityForResult(intent, PICK_FROM_CAMERA); Log.d("ididid", getParentFragment().getId() + ""); Log.d("ididid", getParentFragment().getTag()+""); Log.d("ididid", getActivity()+""); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); Log.d("onActivityResult","onActivityResult"); if (resultCode != RESULT_OK) { return; } switch (requestCode) { case PICK_FROM_CAMERA: { try { String temp = mImageCaptureUri.toString(); temp.replace("file://", ""); Uri final_uri = Uri.parse(temp); Log.e("final_uri", final_uri.toString()); } catch (Exception e) { e.printStackTrace(); } break; } } }

答案 1 :(得分:0)

您可以使用#warning

用法如下:

#warning This is a custom message