iOS有効作成高品質Objective-C方法

1444 ワード

1.クラスのヘッダファイルで、他のヘッダファイルの参照をできるだけ少なくする
前へ宣言する方法を使う
@classname;
2.字面量を多く使って、それと同等の方法を使わない
使用字面量の要点
  • 文字列、数値、配列、辞書については、できるだけ字面量を使って作成
  • アクセス配列や辞書は、可能な限り下付きの送信を使用してアクセスしてください.例えば、arr[1]dic[@"key 1]]
  • 字面量を作成する場合、保証値の中にnilのオブジェクトがないと異常として報告されます.
    3.マルチタイプの定数を使用して、少ない量で、前処理コマンドを使用します.
  • 定数のネーミングには、現在のコンパイルユニット(現在の.m実装クラス)だけであれば、定数の名前の前にkを付けるべきです.定数が外部に作用する場合は、現在のクラス名をプレフィックス定数として必ずstaticonstの2つで定義します.元々は定数であってほしいので、変更できないもう一つの理由は、私たちの定数が現在のものにしか作用しないからです.mクラスは、staticを追加しないと、コンパイラが現在のクラスをコンパイルする時に、外部記号を付けます.他のクラスも同じ名前の変数を定義したら、コンパイラはエラー
  • 4.オブジェクト内部でできるだけ直接インスタンス変数にアクセスする
  • 対象外では、常に属性によってインスタンス変数を操作することを知っていますが、インスタンス内ではどうすればいいですか?怠惰なロードに加えて、変数を読み込む際に直接アクセスする形式(_変数名)を採用し、インスタンス変数を設定する際に属性によって設定することを強く推奨します.
    5.列挙
    Foundationのフレームワークでは、いくつかの補助マクロが定義されています.エニュメレーションを定義する時、私たちはよくこれらのマクロを使ってエニュメレート・ベースのデータを指定します.
    typedef NS_ENUM(NSUInteger, PPSConnectionState){
        PPSConnectionStateDisconnected,
        PPSConnectionStateConnecting,
        PPSConnectionStateConnected,
    };
    
    typedef NS_OPTION(NSUInteger, UIViewAutoresizing){
        UIViewAutoresizingNone = 0,
        UIViewAutoresizingFlexibleLeftMargin = 1 << 0,
        UIViewAutoresizingFlexibleWidth = 1 << 1,
        UIViewAutoresizingFlexibleRightMargin = 1 << 2,
        ...
    };
    
    上に二つの方式のマクロがあるのを見ましたが、私達はどうやって選択すればいいですか?OPTTIONはエニュメレーションはグループがいらないと定義します.全部NS_を使うべきです.ENUM定義