Objective-C 枚舉類型和字串互轉方案

來源:互聯網
上載者:User

標籤:

原文轉自  http://www.rijiyuelei.me/2012/09/enum-and-string-conversion-in-objective-c/

 

枚舉類型的使用優勢沒啥好說的。但經常需要將它與字串進行轉換方便顯示或其它需求。

在常見的方案中,多是先聲明,然後在實現檔案裡建立一個映射表。這樣帶來的問題就是要分兩個檔案來管理,帶來管理不方便不好。使用前還在確保映射表已經初始化。顯然使用時還是有些許難受。

如果全部改用宏來實現則會好管理很多,而且對於映射表可以採用惰性初始化原則,即只有訪問到時才建立。

 

 

enum DPodRecordType{       DPodRecordTypeA = 0,       DPodRecordTypeCNAME,       DPodRecordTypeMX,       DPodRecordTypeTXT,       DPodRecordTypeNS,  

DPodRecordTypeAAAA, DPodRecordTypeSRV, DPodRecordTypeURL }; typedef enum DPodRecordType DPodRecordType; const NSArray *___DPodRecordType; // 建立初始化函數。等於用宏建立一個getter函數 #define cDPodRecordTypeGet (___DPodRecordType == nil ? ___DPodRecordType = [[NSArray alloc] initWithObjects:\ @"A",\ @"CNAME",\ @"MX",\ @"TXT",\ @"NS",\ @"AAAA",\ @"SRV",\ @"URL", nil] : ___DPodRecordType) // 枚舉 to 字串 #define cDPodRecordTypeString(type) ([cDPodRecordTypeGet objectAtIndex:type]) // 字串 to 枚舉 #define cDPodRecordTypeEnum(string) ([cDPodRecordTypeGet indexOfObject:string])

 

缺點呢, 可能會導致最終編譯的檔案會大那麼一點點吧.

 

  

Objective-C 枚舉類型和字串互轉方案

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.