如何在iOS头文件中创建CGSize类型的常量?

问题描述:

我想创建CGSize类型的头文件中的常量,所以我可以在我的应用程序的任何地方使用这个尺寸仅仅使用constantName.heightconstantName.Width如何在iOS头文件中创建CGSize类型的常量?

如果为这两种情况下提供语法我希望:1)固定的高度和宽度,2)的高度和宽度为合格值

谢谢

+0

相关https://stackoverflow.com/questions/6188672 /其中-DO-你-声明-A-恒定的目标-C – Sulthan

+0

还涉及https://stackoverflow.com/questions/11153156/define-vs-const-in-objective-c – Sulthan

对于固定的高度和宽度

  1. #define MAXSIZE CGSizeMake(320, 480)

对于传值,你可以给定义为CGSize值MySizeType即。但是对于常数,你为什么要传递值。

  1. typedef CGSize MySizeType;
  2. 编辑

    几点意见后不要用宏,我阐述我的答案在这里。

    使用宏的缺点是,你的调试器无法知道该恒定。

    而且也有更多的方式来创建一个常数取决于你希望你不断的范围,

    1. 对于内部类只

    static CGSize const MAXSIZE = {320, 480};

    1. For external class
    2. In .hf ILE

      extern CGSize const MAXSIZE; 
      

      在.m文件

      CGSize const MAXSIZE = {320,480}; 
      
    开始=>
开始=>
+0

非常感谢。我其实需要不断的价值。我只是想知道,如果将来我需要在头文件中创建任何对象(不是常量),它接受来自不同类的传递值。 –

+0

关于MACRO的缺点,我无法得到您的观点。你能用简单的语言详细说明吗?并且您给我的编辑解决方案不适用于写入头文件。我通常为全局使用的变量使用头文件。谢谢 –

+0

1.应该写入.m文件,并且已经解释了2 .. –

这里是你的答案。

1)固定

#define kSize CGSizeMake(13.0f, 34.0f) 

2)合格值

#define kSize(width, height) CGSizeMake(width, height) 

您可以使用这样

CGSize size = kSize(12.0f,12.0f); 
NSLog(@"%@",NSStringFromCGSize(size)); 
+0

@Sulthan在使用宏来满足这个需求时会出现什么问题? –