国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[EffectiveObjective-C讀書筆記]第1章幾條基本寫法(2~5條)

2019-11-14 20:38:42
字體:
來源:轉載
供稿:網友

我的技術博客經常被流氓網站惡意爬取轉載。請移步原文:http://m.survivalescaperooms.com/hamhog/p/3575599.html,享受整齊的排版、有效的鏈接、正確的代碼縮進、更好的閱讀體驗。

第2條:在類的頭文件中盡量少引入頭文件

1. 常規情況:

在.h文件中:(寫在@interface之前)

@class SomeClass;

在.m文件中:

#import "SomeClass.h"

2. 必須在.h中引入頭文件的情況:

  1. 類繼承某個超類
  2. 類實現某個協議

第3條:盡量使用“字面量語法(literal syntax)”

  1. 要用:
    NSNumber* intNumber = @5;NSNumber* floatNumber = @5.2f;NSNumber* doubleNumber = @5.27413;NSNumber* exPRessionNumber = @(x*y);

    不要用:
    NSNumber* someNumber = [NSNumber numberWithInt:5];
  2. 要用:
    NSArray* animals = @[@"hamster", @"dog", @"cat"];NSString* hamster = animals[0];NSMutableArray* mutableArray = [@[@"hamster", @"dog", @"cat"]mutableCopy];mutableArray[0] = @"hamster";

    不要用:

    NSArray* animals = [NSArray arrayWithObjects:@"hamster",@"cat",@"dog", nil];NSString* hamster = [animals objectAtIndex:0];

     

  3. 要用:
    NSDictionary* animalData =    @{@"name" : @"Tom",     @"age" : @2};NSString* name = animalData[@"name"];animalData[@"name"] = @"Jerry";

     

第4條:定義常量少用#define

 1. 只在這個類內部使用

在.m文件中:(寫在@implementaion之前)

static const double kSomeNumberConstant = 5.274;static NSString* const kSomeStringConstant = @"hamster";

加字母k作為前綴。

2. 可能在類之外使用

在.h文件中:(寫在@interface之前)

extern NSString* const HAMMyClassSomeStringConstant;

在.m文件中:(寫在@implementation之前)

NSString* const HAMMyClassSomeStringConstant = @"hamster";

加類名作為前綴。

第5條:使用枚舉類型

1. 寫法——單獨使用

定義:

enum HAMAnimalState : NSInteger {    HAMAnimalStateSleeping,    HAMAnimalStateEating,    HAMAnimalStateDoingNothing,};typedef enum HAMAnimalState HAMAnimalState;

其中指定類型的 : NSInteger 可加可不加。加了的可以前向聲明。

使用:

HAMAnimalState state = HAMAnimalStateSleeping;

2. 寫法——組合使用

定義:

enum HAMAnimalAbility {    HAMAnimalAbilityNone               = 0,    HAMAnimalAbilitySing               = 1 << 0,    HAMAnimalAbilityDance              = 1 << 1,    HAMAnimalAbilityTalk               = 1 << 2,    HAMAnimalAbilityRun                = 1 << 3,               }typedef enum HAMAnimalAbility HAMAnimalAbility;

使用:

//ability to both sing and danceHAMAnimalAbility ability = HAMAnimalAbilitySing | HAMAnimalAbilityDance;
if (ability & HAMAnimalAbilitySing){    //has ability to sing}

3. 適合使用枚舉類型的場合

  1. 某個對象的各種狀態,如StateDisconnected, StateConnecting, StateConnected
  2. 表示選項(可能多選),如PermittedDirectionUp, PermittedDirectionDown, PermittedDirectionLeft
  3. 狀態碼
  4. 樣式,如某個UI元素的不同樣式

4. switch枚舉類型時,不要加default:分支


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄陵县| 建始县| 军事| 扎囊县| 修武县| 正镶白旗| 区。| 西城区| 涡阳县| 布尔津县| 梓潼县| 澄江县| 佳木斯市| 和龙市| 金溪县| 郴州市| 岳阳县| 法库县| 邯郸市| 巴东县| 屏东市| 枝江市| 金塔县| 沙洋县| 茶陵县| 精河县| 林甸县| 柘荣县| 武汉市| 丰顺县| 枣阳市| 扬中市| 图片| 大荔县| 项城市| 福清市| 溆浦县| 溆浦县| 新郑市| 凌云县| 成安县|