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

如何在iOS的头文件中创建CGSize类型的常量?,ios,objective-c,constants,header-files,cgsize,Ios,Objective C,Constants,Header Files,Cgsize,我想在头文件中创建CGSize类型的常量,这样我就可以在我的应用程序中的任何地方使用这个大小,只需使用constantName.height和constantName.Width 如果您能为这两种情况提供语法,我将不胜感激:1)固定高度和宽度,2)高度和宽度作为传递值 感谢您提供固定的高度和宽度 #定义MAXSIZE CGSizeMake(320480) 对于传递值,您可以将值MySizeType定义为CGSize。但对于常量,为什么要传递值 typedef CGSize MySizeType

我想在头文件中创建
CGSize
类型的常量,这样我就可以在我的应用程序中的任何地方使用这个大小,只需使用
constantName.height
constantName.Width

如果您能为这两种情况提供语法,我将不胜感激:1)固定高度和宽度,2)高度和宽度作为传递值


感谢您提供固定的高度和宽度

  • #定义MAXSIZE CGSizeMake(320480)
  • 对于传递值,您可以将值MySizeType定义为CGSize。但对于常量,为什么要传递值

  • typedef CGSize MySizeType
  • 编辑

    #define kSize(width, height) CGSizeMake(width, height)
    
    在几句不使用宏的评论之后,我在这里详细说明我的答案

    使用宏的缺点是调试器无法知道常量

    还有更多创建常量的方法取决于您想要的常量的范围

  • 仅适用于内部类
  • staticcgsizeconstmaxsize={320480}

  • 课外活动
  • 在.h文件中

    extern CGSize const MAXSIZE;
    
    在.m文件中

    CGSize const MAXSIZE = {320,480};
    

    用于固定高度和宽度

  • #定义MAXSIZE CGSizeMake(320480)
  • 对于传递值,您可以将值MySizeType定义为CGSize。但对于常量,为什么要传递值

  • typedef CGSize MySizeType
  • 编辑

    #define kSize(width, height) CGSizeMake(width, height)
    
    在几句不使用宏的评论之后,我在这里详细说明我的答案

    使用宏的缺点是调试器无法知道常量

    还有更多创建常量的方法取决于您想要的常量的范围

  • 仅适用于内部类
  • staticcgsizeconstmaxsize={320480}

  • 课外活动
  • 在.h文件中

    extern CGSize const MAXSIZE;
    
    在.m文件中

    CGSize const MAXSIZE = {320,480};
    
    这是你的答案

    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));
    
    这是你的答案

    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));
    

    谢谢。我需要一个常数。我只是想知道将来我是否需要在头文件中创建任何对象(不是常量),它接受从不同类传递的值。我无法理解您关于宏缺点的观点。你能用简单的语言详细说明一下吗?您给我的已编辑解决方案不适用于写入头文件。我通常对全局使用的变量使用头文件。Thanks我不想每次在每个.m文件中初始化这个常量值。我希望它与固定值写入一个文件(全局头文件)。所以我只需要导入这个文件并使用这个变量。我可以使用头文件中的#define kSize CGSizeMake(13.0f,34.0f)来实现这一点。但有些人说,如果我们使用宏,它会有缺点。我已经提到,define不是调试工具,非常感谢。我需要一个常数。我只是想知道将来我是否需要在头文件中创建任何对象(不是常量),它接受从不同类传递的值。我无法理解您关于宏缺点的观点。你能用简单的语言详细说明一下吗?您给我的已编辑解决方案不适用于写入头文件。我通常对全局使用的变量使用头文件。Thanks我不想每次在每个.m文件中初始化这个常量值。我希望它与固定值写入一个文件(全局头文件)。所以我只需要导入这个文件并使用这个变量。我可以使用头文件中的#define kSize CGSizeMake(13.0f,34.0f)来实现这一点。但有些人说,如果我们使用宏,它会有缺点。我已经提到,define不是调试器友好型的,也与@Sulthan相关,也与@Sulthan为这种需要使用宏有什么不对?@Sulthan为这种需要使用宏有什么不对?