2017-06-23 164 views
0

我想創建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

回答

3

對於固定的高度和寬度

  1. #define MAXSIZE CGSizeMake(320, 480)

對於傳值,你可以給定義爲CGSize值MySizeType即。但是對於常數,你爲什麼要傳遞值。

  • typedef CGSize MySizeType;
  • 編輯

    幾點意見後不要用宏,我闡述我的答案在這裏。

    使用宏的缺點是,你的調試器無法知道該恆定。

    而且也有更多的方式來創建一個常數取決於你希望你不斷的範圍,

    1. 對於內部類只

    static CGSize const MAXSIZE = {320, 480};

  • For external class
  • In .hf ILE

    extern CGSize const MAXSIZE; 
    

    在.m文件

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

    非常感謝。我其實需要不斷的價值。我只是想知道,如果將來我需要在頭文件中創建任何對象(不是常量),它接受來自不同類的傳遞值。 –

    +0

    關於MACRO的缺點,我無法得到您的觀點。你能用簡單的語言詳細說明嗎?並且您給我的編輯解決方案不適用於寫入頭文件。我通常爲全局使用的變量使用頭文件。謝謝 –

    +0

    1.應該寫入.m文件,並且已經解釋了2 .. –

    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在使用宏來滿足這個需求時會出現什麼問題? –