Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 使用预处理器检查文件的类类型_Ios_Objective C_Macros_Clang_C Preprocessor - Fatal编程技术网

Ios 使用预处理器检查文件的类类型

Ios 使用预处理器检查文件的类类型,ios,objective-c,macros,clang,c-preprocessor,Ios,Objective C,Macros,Clang,C Preprocessor,我正在使用(叮当)宏 其中之一是一个#定义,用于涉及self.view.frame的宏,但有时我尝试在UIView类而不是UIViewController类中使用此宏,因此我需要使用self.frame而不是self.view.frame 现在我有一个主文件macros.h,我将它导入到每个方法文件中。与其每次使用#undef并在UIViewclass.m-file中重新定义一个宏,还有什么方法可以检查(clang)本身中的类类型,并根据类导入我的macros.h文件的类条件更改macros.h

我正在使用(叮当)宏

其中之一是一个
#定义
,用于涉及
self.view.frame
的宏,但有时我尝试在
UIView
类而不是
UIViewController
类中使用此宏,因此我需要使用
self.frame
而不是
self.view.frame

现在我有一个主文件
macros.h
,我将它导入到每个方法文件中。与其每次使用
#undef
并在
UIView
class.m-file中重新定义一个宏,还有什么方法可以检查
(clang)
本身中的类类型,并根据类导入我的
macros.h
文件的类条件更改
macros.h
中的定义


我知道clang中存在
#ifdef
,但我从未使用过它,也不知道如何使用它检查类类型。

它必须是宏吗?您可以为UIView定义一个category方法,为UIViewController定义另一个category方法。@MartinR是的,这就是我现在使用的解决方案,我只是好奇是否有一种方法可以用宏来实现这一点;试图了解更多关于它们和它们的实用性。它必须是一个宏吗?您可以为UIView定义一个category方法,为UIViewController定义另一个category方法。@MartinR是的,这就是我现在使用的解决方案,我只是好奇是否有一种方法可以用宏来实现这一点;试图更多地了解它们及其效用。