1.在c語言
中我們用到一串有關聯,被當作判斷狀態依據的常量時,會用到列舉enum,其使用:
enum week;
預設情況mon = 0;後面依次加1,也可以自己指定:
enum week;
這樣mon = 1;後面依然依次加1.
2.在objective-c
中,因為版本,有幾種實用列舉的樣式。
使用c語言樣式:
enum testtt;
switch (tt)
感覺用起來很不爽,那麼:
typedef enumtest;
test tt;
switch (tt)
還是不夠oc:
typedef ns_enum(nsinteger,test);
test tt;
switch (tt)
嗯,這回就非常oc了,推薦這樣使用
3.按位位移列舉
typedef ns_enum(nsinteger,test);
nslog(@"t1 = %ld",t1);
nslog(@"t2 = %ld",t2);
nslog(@"t3 = %ld",t3);
nslog(@"t2 = %ld",t4);
nslog(@"t3 = %ld",t5);
nslog(@"t3 = %ld",t6);
輸出結果為1,2,4,8,16,32 。
那麼什麼情況用這種列舉呢?先上**:
typedef ns_enum(nsinteger,test);
test tt= (t3|t6);
if((tt&t1))else
if((tt&t3))else
if((tt&t5))else
if((tt&t6))else
輸出結果為:
2017-02-10 11:56:01.243 uikitlearn[2460:69675] 沒有t1
2017-02-10 11:56:01.243 uikitlearn[2460:69675] 有t3
2017-02-10 11:56:01.243 uikitlearn[2460:69675] 沒有t5
2017-02-10 11:56:01.244 uikitlearn[2460:69675] 有t6
當我們對於乙個事物的一種屬性要用多種狀態描述時,比如一行字,是 3號黑體有下劃線的,就應該這樣 3號|黑體|下劃線,用或的方式整合多種狀態,再判斷某種狀態有沒有。 Objective C與C 的聯絡與區別
objective c語言,該語言被認為是c語言的超集,賦予了c語言物件導向的能力,完全支援c c 語言,但和c 語言的物件導向有很大不同,它是以訊息機制為底的,oc方法的本質是 訊息傳送 即objc msgsend 底層是通過方法的 sel 查詢 imp。比如可以面向向不包含該方法的物件傳送該訊息...
Objective C中的繼承與復合技術
學習了objective c中有關類繼承的知識。紀錄如下 1 oop程式設計中有兩個技術 用於描述類與類或物件與物件之間的關係 乙個是繼承 另乙個是復合。2 在objective c中每個子類只能有乙個超類,這一點與c 不同。3 方法排程程式 該排程程式的功能非常重要,當乙個物件接收到乙個訊息後,排...
Objective C中的相關術語與思想
術語 類 class 表示物件型別的結構體,首字母大寫 物件 object 首字母小寫 例項 instance 即為 物件 訊息 message 物件可執行的操作,例如 shape draw 通過shape物件傳送draw訊息通知物件來繪製自身 方法 method 響應訊息,根據物件的類,訊息呼叫不...