一、c語言中
1、c語言中的列舉型別enum。在以一系列常量來表示錯誤狀態碼或可組合的選項時,極宜使用列舉為其命名。
2、定義乙個enum
enum personagestate ;
@property (nonatomic, assign) enum personagestate personage;
enum personagestate personage = personagestatelitter;
3、可以使用typedef關鍵字重新定義列舉型別
enum personagestate ;
typedef enum personagestate personagestate;
@property (nonatomic, assign) personagestate personage;
personagestate personage = personagestatelitter;
4、可以指明用何種「底層資料型別」來儲存列舉型別的變數。這樣做的好處是,可以向前宣告列舉變數了。若不指定底層資料型別,則無法向前宣告列舉型別,因為編譯器不清楚底層資料型別的大小,所以在用到此列舉型別時,也就不知道究竟該給變數分配多少空間。
enum waitstate : nsinteger ;
@property (nonatomic, assign) enum waitstate : nsinteger waitstate;
enum waitstate : nsinteger waitstate1 = waitstatelitter;
5、在定義選項的時候,應該使用列舉型別。若這些選項可以彼此組合,則更應如此。只要列舉定義得對,各選項之間就可以通過 「按位或操作符」來組合。
enum uiviewautoresizing ;
如果把傳遞給某個方法的選項表示為列舉型別,而多個選項又可以同時使用,那麼就將各選項值定義為2的冪,以便通過按位或操作將其組合起來。
二、oc語言中
foundation框架中定義了一些輔助的巨集,用這些巨集來定義列舉型別時,也可以制定用於儲存列舉值的底層資料型別。這些巨集具備向後相容能力,如果目標平台的編譯器支援新標準,那就使用新式語法,否則改用舊式語法。
1、typedef ns_enum(nsinteger, uiviewanimationtransition) ;
上面用ns_enum巨集所定義的列舉型別展開之後就是:
typedef enum uiviewanimationtransition : nsinteger uiviewanimationtransition;
enum uiviewanimationtransition : nsinteger ;
2、typedef ns_options(nsuinteger, uiviewautoresizing) ;
三、列舉值與switch語句
在處理列舉型別的switch語句中不要實現default分支。這樣的話,假如新列舉之後,編譯器就會提示開發者:switch語句並未處理所有列舉。
Ajax狀態值及狀態碼
1 ajax狀態值與狀態碼區別 ajax狀態值是指,執行ajax所經歷過的幾種狀態,無論訪問是否成功都將響應的步驟,可以理解成為ajax執行步驟。如 正在傳送,正在響應等,由ajax物件與伺服器互動時所得 使用 ajax.readystate 獲得。由數字1 4單位數字組成 ajax狀態碼是指,無論...
ajax狀態碼和狀態值
狀態值 判斷請求的 存有 xmlhttprequest 的狀態。從 0 到 4 發生變化。0 請求未初始化 1 伺服器連線已建立 2 請求已接收 3 請求處理中 4 請求已完成,且響應已就緒狀態碼 判斷響應的 1xx 資訊響應類,表示接收到請求並且繼續處理 2xx 處理成功響應類,表示動作被成功接收...
ajax 狀態值與狀態碼
狀態值與狀態碼的區別 ajax的狀態值指,執行ajax時,無論是成功還是失敗都要響應的步驟的幾種狀態。例如 尚未呼叫send 方法時的初始化前 正在傳送請求 正在響應等,由ajax物件和伺服器之間的互動所得。通過ajax.readystate獲得 0 4 範圍的乙個狀態值。ajax狀態碼是指,aja...