1

我有一个通用应用程序,在代码的几个部分中,我必须检查设备类型以呈现 UI 元素。早些时候,我有一个 bool变量isDeviceIPadviewDidLoad

所以相反,我想我可能会使用宏,所以isDeviceIPad宏(而不是 bool 变量)永远不会出错:

#define isDeviceIPad ([[UIDevice currentDevice]userInterfaceIdiom]==UIUserInterfaceIdiomPad)

可以使用这样的宏吗?我不应该的任何理由(性能考虑等)?

4

2 回答 2

4

该宏可以正常工作,并且不会有额外的性能问题。编译您的应用程序时,宏的每次使用都将替换为宏的定义。这就像一个大搜索和替换。

虽然你应该只使用:

#define isDeviceIPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
于 2012-10-22T15:12:04.730 回答
0

这是正确的语法(在 pad 或 phone 之前没有空格 && 没有 'i' && 没有额外的标点符号)

   #define isDeviceIPad UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPad
   #define isDeviceIPhone UI_USER_INTERFACE_IDIOM()==UIUserInterfaceIdiomPhone
于 2013-03-24T16:29:24.793 回答